在构建 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
.install
debian
debian/foobar.install
上面列出的三个选项翻译如下。
要在将文件复制到 后删除文件
debian/tmp
,请执行以下操作override_dh_intall: rm -f debian/tmp/bin/printjob_svr.bin dh_install
要告诉
dh_install
跳过文件,不要将它们列在.install
文件中;这意味着您不能使用通配符或普通目录名称 (bin
,bin/*
)。您还应该在 中列出跳过的文件debian/not-installed
,但请参阅 中的警告man dh_missing
。要显式排除文件,请覆盖目标并添加
-X
选项;这仅适用于dh_
支持此功能的命令:override_dh_installdocs: dh_installdocs -Xprintjob_svr.bin
(这与您的用例不符,我将其列出是为了完整性)。