前些天,杜比版主在论坛里提出了定制社区版debian的计划,并在群里分享了对“自动构建网络”的想法

我通过构建cmake的例子,体验了一下这个流程,现在此分享一下自己的理解。这个过程主要使用dpkg-buildpackage软件,它集编译打包为一体,不影响本机的软件环境,极大地简化了操作。具体步骤如下:
- 查询待编译的包(没试过):在gitlab.loongarch.org的服务器里,存着一个包含各包编译状态的数据库。在这里可以认领需要编译的包。 
- 获取源码:使用apt获取。首先要向apt的sources.list里添加指定的镜像源,然后在工作目录里使用- apt source+包名即可获得源码。工作目录中出现了一个文件夹和三个文件,其中需要操作的只有那个文件夹,这个文件夹内存放着源码。
 
- 补全依赖:在当前目录下运行- sudo apt build-dep+包名。
 
- 开始编译:进入那个文件夹,运行- dpkg-buildpackage -uc -us 2>&1 | tee ../build.log即可开始编译,并向上级目录保存一个log文件。
 
- 打上补丁(如果编译失败): - (1)如果能够找到一个别人做好的补丁,请将它放在工作目录,并在工作目录中运行如下代码: - cp -v 补丁名 源码文件夹/debian/patches
 - echo 补丁名 >> 源码文件夹/debian/series
 - cd 源码文件夹
 - dpkg-source -b .
 - (2)如果找不到补丁,那就要对源码进行修改,并自制对应的补丁。请注意,这里的补丁需要使用专门的工具构建,使用diff命令做的无法工作! - (2.1)修改源码 - (2.2)运行以下代码,保存更改并制作补丁。中间会弹出一个文本编辑器窗口展示补丁,可以在这里另存。补丁会被存在- 源码文件夹/debian/patches内,待编译完成后,还会被添加到工作目录的.debian压缩文件内
 - dpkg-source --commit
 - (2.3)再次编译,直到成功 
- 上传结果(没试过):编译结束后会获得相应的.deb文件,和一个添加了新的补丁的.debian压缩文件。把它们传回gitlab,数据库会自动调整这个包的状态。 
- 进行测试(没试过):其他人可以下载这个包,进行测试。