我已经覆盖文件dh_auto_install:
中的目标debian/rule
。现在,我所有构建的组件都安装在debian/tmp
.
我package.install
为我的套装中的每个包裹都做好了准备,但是我遇到了这个问题:
包A
应包含scripts
两个文件。
包也B
应该包含scripts
dir 但没有两个文件将位于 package 中A
。
当然,可以在文件scripts
中的目录中设置文件debian/B.install
。但scripts
dir 包含大量文件,放置每个文件都需要更多时间。
是否可以排除package.install
文件中的某些特定文件?
答案1
是否可以排除
package.install
文件中的某些特定文件?
不是直接的,但至少有三种方法可以实现您所追求的目标。 (既然你提到了重写dh_install
,我猜你正在使用短dh
风格rules
。)
dh_install
副本文件从debian/tmp
到他们的目标。它的前身《dh_movefiles
》感动了他们;它已被弃用,但在这种情况下仍然可以使用。执行此操作的方法是A
在 packageB
in之前列出 packagedebian/control
(因此首先处理它,假设两者具有相同的体系结构),重命名A.install
为A.files
并覆盖,dh_install
以便它dh_movefiles
首先运行:override_dh_install: dh_movefiles dh_install
这会将文件移出
A
,debian/tmp
以便您的B.install
文件可以列出scripts
并B
包含保留在 中的所有文件scripts
。序列
dh
会跳过,dh_movefiles
因此无需执行任何特殊操作即可避免其运行两次。debhelper
配置文件可以是可执行的,因此您可以B.install
用一个列出scripts
' 内容并过滤掉A.install
.另一种方法是添加一个步骤,然后
dh_install
删除A
from中的任何内容B
;就像是override_dh_install: dh_install cd debian/A/scripts; find . -type f -exec rm -f ../B/scripts/{} \;
(未经测试)。