从源码到编译的过程(加粗命令)
- 从软件官网或者git服务器checkout下来:git chone --recursive htttps://*.git -b v1.0(#github 加速:https://gh.api.99988866.xyz/ + URL)
- 进入到源码目录 dh_make --createorig ,将源码debian化(dh_make -s -y --createorig)
- 修改debian/control 文件,软件包的名称依赖以及编译依赖描述等等都在这里了
- 修改changelog ,dhc -e ,这个也是比较重要的文件,软件debian-revision版本也在这里面了
- 修改debian/rules这个文件其实就是Makefile,功能就是编译,安装到fakeroot,完成打包这个过程, 把传统的编译安装3件套configure&&make&&make install ,或者cmake ninja之类的命令放进去就好了。编译完成安装,安装的fake根目录就在源码路径的debian目录下,当然make目标最后还需要把dh_builddeb这些dh——helper的套件命令放进去,这样编译完成后才会自动完成打包过程,完成后会在源码的上一级目录生成deb二进制文件。
- 在源码目录使用debuild -uc -us进行编译打包过程。
- debuild 会先调用dpkg-buildpackage,然后运行lintian检查包是否符合debian规范,最后会做包签名。 debian 的简易打包指南说,dpkg-buildpackage会调用binary这个目标来开始编译,所以rules文件里应该是必须要包涵binary这个目标的。(dpkg-buildpackage -b -us -uc -d j8)
- 这几个步骤其实主要是修改control,rules,changelog,尤其是rules。其余的一些很多功能还是需要进一步扩展看文档的。(rules里面cd那一行命令结束后会自动回到cd前的目录,所以如果在Makefile里面要想cd 到某个目录做什么,只能连着写一行)
- debian这个玩意儿实在是历史太悠久了,以至于不管是打包还是安装包以及做在线源,都有好几种不通的方法。对没接触过的人来说绝对晕菜。
- 要想省事,就直接用人家写好的文件或者甚至官网的src库里的源码来修改,这样基本等于白嫖,你只需要修改你想改的部分或者软件源代码。
- 对于check下来的源码目录debian/source/有format文件的情况,打包过程 dpkg-source会报错,需要删除掉,这是用来处理补丁的,需要原始软件源码压缩包,但实际我们已经下载的源码不需要。所以删掉让他略过这个过程。