debian 软件包构建中 rpm.spec 文件的“排除”命令的替代方法是什么

debian 软件包构建中 rpm.spec 文件的“排除”命令的替代方法是什么

在构建 rpm 包时,我们可以在规范文件中使用此排除命令来排除某些包中的特定文件。

前任。

%exclude foobar/bin/printjob_svr.bin

在构建 deb 包时我们如何以及在哪里指定相同的内容?我有一个在从源构建不同包时需要排除的文件列表。现在我可以从源代码构建三个不同的包,但所有文件在安装时都存在。

答案1

在 Debian 软件包中,您可以通过在安装后(在源软件包中)但在构建软件包之前删除文件,或者不将它们列在要安装的文件列表中,或者将它们从安装中排除来执行此操作(仅适用于某些类型的文件)。

如果您使用的是 Short-style dh-based debian/rules,您可能会(隐式)使用

  • dh_auto_install,它运行上游安装以放置文件debian/tmp(因为您正在构建多个包);
  • dh_install,它根据(等)中的文件内容将文件复制debian/tmp到适当的安装目标(等) 。debian/foobar.installdebiandebian/foobar.install

上面列出的三个选项翻译如下。

  1. 要在将文件复制到 后删除文件debian/tmp,请执行以下操作

    override_dh_intall:
            rm -f debian/tmp/bin/printjob_svr.bin
            dh_install
    
  2. 要告诉dh_install跳过文件,不要将它们列在.install文件中;这意味着您不能使用通配符或普通目录名称 ( bin, bin/*)。您还应该在 中列出跳过的文件debian/not-installed,但请参阅 中的警告man dh_missing

  3. 要显式排除文件,请覆盖目标并添加-X选项;这仅适用于dh_支持此功能的命令:

    override_dh_installdocs:
            dh_installdocs -Xprintjob_svr.bin
    

    (这与您的用例不符,我将其列出是为了完整性)。

相关内容