我想研究为 Debian 构建软件包,但这个过程并不像在其他发行版中那么简单,当涉及到编写如何构建软件包、它依赖于什么、它是什么版本等的说明时,所以我开始重建一个已经存在的软件包。
我了解到包定义有点令人头疼(各种文件,复杂结构),但构建和重建工作流程足够简单:
- 确保
build-essential
、dpkg-dev
、devscripts
已安装。 /etc/apt/sources.list
确保在或中启用了源存储库/dev/apt/sources.list.d/sth.list
。- 通过 获取包源
apt source *package*
。 - 通过安装包构建依赖项
apt build-dep *package*
。 - 进入包目录并使用 进行构建
dpkg-buildpackage
。
我使用--no-sign
标志是因为我只是在测试,并选择了bash
作为包,一切顺利(有很多东西需要消化,我将其导入tee
以便稍后查看),并且我在父目录中构建了包。我在root
构建目录下构建了可所有人写入的包,但我还检查了fakeroot
是否以非特权用户身份使用。
但是,当我尝试安装软件包时,APT 用大写字母告诉我它将降级已安装的版本,我实际上没有更改任何内容,版本保持不变。为什么会显示该消息?正确的方法是什么?