我正在尝试制作一个简单的 .deb 包,它基本上会编辑我列为依赖项的另一个包的配置。
我在安装后文件中添加了所需的操作。
问题是我找不到打包示例配置的方法,该示例配置应该从安装后脚本中复制和编辑。
目前,我只有一个包含示例配置的文件夹,我正在为其创建 tar.gz 和 orig.tar.gz,然后dh_make
在该文件夹中编辑生成的文件并运行debuild
。 但是,如果我使用存档管理器打开生成的 .deb 文件,我可以看到根本没有包含示例文件。
答案1
对于您的用例,您不会使用新的软件包来修改您的配置。相反,您应该使用修改后的默认配置(通过补丁)重建要修改的软件包。然后,您可以将该软件包上传到 PPA 或类似的存储库系统,以便于安装。
将单个文件打包成 .deb 文件只是为了更改不同的不建议使用 .deb 的配置文件,因为如果其他 .deb 被修改并且您的 debian/control 中有一个明确的版本,而新版本太新,您的系统将拒绝更改配置的 .deb。
请评论这个答案,说明为什么您特别希望使用 .deb 来进行配置更改,我可以详细说明您将如何进行此操作(如果需要)。
好吧,首先我认为制作这样的 .deb 是一件轻而易举的事,其次我不希望配置发生很大变化,而且我认为如果我重新打包另一个包,我将需要在原始包更新后立即更新我的包(?)。非常感谢您的帮助,我试图更改配置的包是 collectd,我只需要替换安装后脚本中的 /etc/collectd/collectd.conf – Fluffy
制作 .deb 并非轻而易举,实际上您需要充分了解打包工作原理等。一旦原始软件包有更新,您就必须更新软件包,但这可以部分基于更改日志来决定,包括但不限于 Ubuntu 中当前存在的软件包以及不同版本中修复的内容。但是一旦您有了补丁,您就可以像在旧版本中一样轻松地在新版本中应用它,这就是我提到这一点的原因。
我是否需要下载当前的 .deb,解压并编辑它,还是必须处理原始源代码? – Fluffy
这个问题目前无法回答,所以让我详细说明一下我所见过的其他问题:
什么是源包?
源包是二进制安装程序包 (.debs) 的构建源。它们包含程序的完整源代码,但包含所有适用的补丁和 Debian 包信息。
编辑源包是否意味着我正在编辑程序的源代码?
不一定。程序的源代码确实是软件包的基础,但除非您更改该代码,否则您可以修改软件包而无需触及代码。当然,这取决于您要做什么。
简单来说,无论您在这里做什么,您都需要编辑上游下载的程序的源代码或软件包中包含的源代码。因此,无论如何都要使用“原始源代码”。但是,postinst 脚本和其他与安装相关的脚本存储在debian/*
软件包中,而不是源代码的一部分。
包装指南中涉及了包装的补丁:http://developer.ubuntu.com/packaging/html/patches-to-packages.html
完整的 Ubuntu 打包指南在这里:http://developer.ubuntu.com/packaging/html/
通过电子邮件收到其他信息后,将更新特定包的配置,以包含某种具有一次性密钥的受限 API。
在这种情况下,不建议使用 PPA 的方法声明,因为 API 密钥通常特定于单个配置,并且此类修改后的配置不应公开,以免其他人试图劫持这些配置。
答案2
如果您正在为 Ubuntu 打包这个,那么找到有关如何完成它的信息的最佳地点当然是 Ubuntu。 请参阅 Ubuntu 维基