Deb

DEB:多包,在包建構過程中忽略某些文件的安裝

  • May 24, 2018

我已經覆蓋了文件中dh_auto_install:的目標。debian/rule現在,我所有建構的組件都安裝在debian/tmp.

package.install為我的套裝的每個包裹都做了準備,但我有這個問題:

A應該包含scripts兩個文件。

B也應該包含scriptsdir 但沒有兩個將在 package 中的文件A

當然可以在文件中的scriptsdir 中設置debian/B.install文件。但是scriptsdir 包含大量文件,並且放置每個文件都需要更多時間。

是否可以排除文件中的某些特定package.install文件?

是否可以排除文件中的某些特定package.install文件?

不是直接的,但至少有三種方法可以實現你所追求的。(由於您提到覆蓋dh_install,我猜您正在使用短dh樣式rules。)

  1. 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文件可以列出scriptsB包含所有留在 中的文件scripts

dh序列跳過,dh_movefiles所以沒有什麼特別的事情可以避免它執行兩次。 2. debhelper配置文件可以是可執行的,因此您可以替換B.install為列出scripts’ 內容並過濾掉A.install. 3. 另一種方法是添加一個步驟,之後dh_install刪除Afrom中的任何內容B;就像是

override_dh_install:
       dh_install
       cd debian/A/scripts; find . -type f -exec rm -f ../B/scripts/{} \;

(未經測試)。

引用自:https://unix.stackexchange.com/questions/445778