与Debhelper打包
重要 要求: 名为“Packaging From Scratch”的部分以及debhelper和dh-make的要求 作为打包者,您将很少像我们在上一节中所做的那样从头开始创建包。可以想象,许多任务和信息都在 规则 例如,文件对包是通用的。为了使包装更容易和更有效,您可以使用 debhelper的 帮助完成这些任务。 Debhelper是一组Perl脚本(前缀为 DH_)自动化包构建过程。使用这些脚本,构建Debian包变得非常简单。 在这个例子中,我们将再次构建GNU Hello包,但这次我们将把我们的工作与Ubuntu进行比较 HELLO-的debhelper 包。再次,创建一个您将在其中工作的目录: 然后,获取Ubuntu源包: 与前面的示例一样,我们需要做的第一件事是解压缩原始(上游)tarball。 而不是将上游tarball复制到 hello_2.1.1.orig.tar.gz 正如我们在前面的例子中所做的那样,我们会让 dh_make所 为我们工作。你唯一要做的就是重命名源文件夹,使其形式为
要创建源的初始“debianization”,我们将使用 dh_make所. 然后dh_make会问你一系列问题: 警告 只跑 dh_make -e 一旦。如果在第一次执行后再次运行它,它将无法正常工作。如果要更改它或出错,请删除源目录并重新解压缩上游tarball。然后,您可以迁移到源目录并再试一次。 运行 dh_make -e 做两件事: 该 你好 程序并不是很复杂,正如我们在“从头开始包装”一节中所看到的那样,打包它并不需要比基本文件多得多。因此,让我们删除 .EX 文件: 对于 你好,你也不会 * 执照 * Ubuntu包装指南索引 需要 README.Debian所有 (针对特定Debian问题的README文件,而不是程序的自述文件), 迪尔斯 (用于 dh_installdirs 创建所需的目录), 文档 (用于 dh_installdocs帮 安装程序文档),或 信息 (用于 dh_installinfo 安装信息文件)文件到 Debian的 目录。有关这些文件的更多信息,请参阅“dh_make示例文件”一节。 在这一点上,你应该只有 更新日志, COMPAT, 控制, 版权,和 规则 中的文件 Debian的 目录。从名为“Packaging From Scratch”的部分,新的唯一文件是 COMPAT,这是一个包含的文件 debhelper的 使用的版本(在本例中为4)。 你需要调整 更新日志稍微在这种情况下反映该包被命名 HELLO-的debhelper 而不仅仅是 你好: 通过使用 debhelper的,我们唯一需要改变的地方 控制 是名字(代替 你好 对于 HELLO-的debhelper)并添加 debhelper(> = 4.0.0) 到了 编译所需 源包的字段。 Ubuntu包 HELLO-的debhelper 好像: 我们可以复制 版权 文件和 的postinst 和 prerm 来自Ubuntu的脚本 HELLO-的debhelper 包装,因为它们从“从头开始包装”一节开始没有改变。我们也会复制 规则 文件,所以我们可以检查它。 我们需要查看的最后一个文件是 规则,哪里的力量 debhelper的 可以看到脚本。该 debhelper的 的版本 规则 有点小(54行,而在版本中称为“规则”的72行)。 该 debhelper的 版本看起来像: touch build binary-indep:install#没有与上传的架构无关的文件#由此软件包生成。如果有的话,他们会在这里做#。 binary-arch:install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary:binary-indep binary- arch .PHONY:binary binary-arch binary-indep clean checkroot 请注意,如果您在正确的目录中,则执行测试(dh_testdir),确保您使用root权限构建程序包(dh_testroot),安装文档(dh_installdocs帮 和 dh_installchangelogs),并在构建后清理(dh_clean)自动处理。许多包装比复杂得多 你好 有 规则 文件没有更大,因为 debhelper的 脚本处理大多数任务。有关的完整列表 debhelper的 脚本,请参阅“列表”一节 debhelper的 脚本“。他们各自也有很好的记录 人 页面。对于上面使用的每个帮助程序脚本,阅读手册页(它们编写得很好而且不冗长)是一个很有用的练习 规则 文件。