使用 sbuilder 可以为我们构建软件包时提供净室环境,这样构建软件包时所需要的依赖就不会污染宿主环境。而且 sbuilder 是 Debian 官方新的一个构建工具,所以在构建 deb 包时有很多优势。具体的介绍和配置可以参考:sbuild - Debian Wiki
mentor 在 rv4 上已经完成了 sbuilder 的配置,直接用就可以,在这里我就不详细说 sbuilder 的配置了,可以参考 Debian 官方的文档。
登陆到 rv4 后就可以使用 sbuilder 直接构建软件包了
sbuild --arch=riscv64 [.dsc 文件]
/* 例如: */
sbuild --arch=riscv64 https://opentuna.cn/debian/pool/main/g/gcc-12/gcc-12_12.2.0-14.dsc
即可自动构建 riscv64 的软件包,并且构建完成后并不会污染宿主环境。
git clone 下来的源码,我们也可以进入到源码 debian 目录的上一层文件夹,利用debuild在上层目录构建新的dsc文件和debian文件。
dpkg-buildpackage -d -us -uc # 参数d可以忽略依赖生成dssc和debian文件
我构建一个软件包的时候遇到了一个这样的问题:
configure: error: flex needed in maintainer mode
解决办法是安装了 flex bison 这两个依赖。
总的来说,通过使用打包工具 sbuilder ,极大的方便了构建软件包的流程,并且有效的避免了污染宿主环境。