带有可选文件的 Debian 软件包

带有可选文件的 Debian 软件包

创建 debian 包的脚本存在并且可以工作。我必须修改它们。在新的特定情况下,可能有一些我想包含在打包中的可选文件。

如果我将它们添加到 package.install,那么我会失败,因为只有这些文件不存在。如果我不将它们添加到 package.install 中,那么即使它们存在,它们也永远不会包含在包中。

为了确定具体情况,我有特殊的环境变量:SPECIFIC_CASE=CASE

我应该如何设置 debian 包创建脚本来搜索这些文件以防特定情况?

在文件rules(被设计为 Makefile)中我有目标:

copy_files:
override_dh_install:
override_dh_auto_install: (empty)
...list of other overrides...
install:
postbuild:
clean:

答案1

对于 Debian 中的大多数打包工具,包的内容package最终都是运行debian/package时的内容。dpkg-deb您可以以任何您想要的方式将文件放置在那里,而不必依赖dh_install(这是处理文件的工具.install)。

因此:

override_dh_install:
        dh_install
        install blah debian/package/wherever

等等。您可以在此处添加条件文件处理。

然而重要的是要认识到打包规范(这不是特定于 Debian)应该保持一致:IE在给定的体系结构上,构建包应该始终产生相同的包内容。打包可选内容通常涉及构建项目以便生成所有文件,然后将它们分派到不同的包中,而不需要安装所有文件。 (这包括竭尽全力,例如GCC 版本有一些技巧,以便编译器驱动程序了解所有可用的语言,但不必全部安装。)

相关内容