我正在尝试使用一些额外的模块重新编译 nginx 并再次对其进行打包。我想更改软件包名称以避免可能破坏服务器的软件包升级。到目前为止,我使用 apt-get source nginx 下载了源代码,更改了规则部分以添加模块,并使用 debuild 重建了它,但我不知道如何更改软件包名称。有什么想法吗?
答案1
生成的软件包的名称在 debian/control 文件中配置。您必须更改软件包名称以及引用它们的内容(Depends/Conflicts/Provies/等)。
此外,在 debian/ 中有多个文件以使用它们的软件包命名(以 .install/postint/prerm/dirs/init/... 结尾)(它们在软件包构建期间由各种 dh_* 脚本使用)。您还必须重命名这些文件。
查看 nginx 的 debian/rules,似乎 binary-indep 和 build-dbg 规则中也有一些硬编码的包名称需要修复。
答案2
为了方便使用并避免对 debian/packages 进行黑客攻击,请使用checkinstall
您的 distro-packages 中提供的软件包。
请务必仔细阅读手册文件,因为您需要一些命令行开关,如软件包维护者、软件包版本等,但一旦设置完成,它就可以像 charme 一样工作。
我们使用它来编写我们的构建过程脚本并从一次构建中创建 rpm/deb - 包。