Deb
DEB:多包,在包建構過程中忽略某些文件的安裝
我已經覆蓋了文件中
dh_auto_install:
的目標。debian/rule
現在,我所有建構的組件都安裝在debian/tmp
.我
package.install
為我的套裝的每個包裹都做了準備,但我有這個問題:包
A
應該包含scripts
兩個文件。包
B
也應該包含scripts
dir 但沒有兩個將在 package 中的文件A
。當然可以在文件中的
scripts
dir 中設置debian/B.install
文件。但是scripts
dir 包含大量文件,並且放置每個文件都需要更多時間。是否可以排除文件中的某些特定
package.install
文件?
是否可以排除文件中的某些特定
package.install
文件?不是直接的,但至少有三種方法可以實現你所追求的。(由於您提到覆蓋
dh_install
,我猜您正在使用短dh
樣式rules
。)
dh_install
將文件複製debian/tmp
到其目標。它的前身dh_movefiles
, 移動它們;它已被棄用,但仍然可以在這種情況下使用。這樣做的方法是在 package inA
之前列出 package (因此首先處理它,假設兩者俱有相同的架構),重命名為,然後覆蓋以便它首先執行:B``debian/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
所以沒有什麼特別的事情可以避免它執行兩次。 2.debhelper
配置文件可以是可執行的,因此您可以替換B.install
為列出scripts
’ 內容並過濾掉A.install
. 3. 另一種方法是添加一個步驟,之後dh_install
刪除A
from中的任何內容B
;就像是override_dh_install: dh_install cd debian/A/scripts; find . -type f -exec rm -f ../B/scripts/{} \;
(未經測試)。