Debian

什麼是 Debian 軟體包的好臨時安裝目錄?

  • November 17, 2020

我正在為 Meteor 應用程序編寫 debian 打包。該meteor build命令將創建一個需要在其上執行的“捆綁包” npm install(以解決其 node.js 依賴項);然後我們就可以打封包件了。

在哪裡創建捆綁包?

我決定在 debian/tmp 的子目錄中創建它,如下所示(在規則文件中):

override_dh_auto_build:
   cd bigbluebutton-html5; meteor build --directory ../debian/tmp/bigbluebutton-html5
   cd debian/tmp/bigbluebutton-html5/bundle/programs/server; npm install

但是 debian/tmp 在二進制階段開始時被刪除,由dh_prep. 我可以通過覆蓋來解決這個問題dh_prep,如下所示:

# This is here to prevent removal of debian/tmp during the install step.
override_dh_prep:

但這似乎違反直覺。

有人可以建議一個更好的地方來上演“捆綁”嗎?還是打包 Meteor 項目的更好方法?

這通常在build項目頂層下的目錄中完成,或者在debian/build. 無論您選擇哪個,請確保將其添加到debian/clean,並帶有斜杠,以便在建構開始時將其刪除。

使用debian/tmp會導致dh_prep您遇到的問題之外的問題;例如,dh_missing期望所有內容都debian/tmp安裝在結果包中的某個位置。

在過去的幾個月裡,Debian 開發社區對此進行了一些討論,請參閱最近試圖提出更廣泛提案的這個文章。

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