Dpkg

如何通過指定版本使 debian 包只能安裝

  • July 25, 2022

我希望我的 CI/CD 為每次送出自動建構我的包的 .deb,例如包含送出雜湊的版本(例如 my-package-662b98b),因此我們可以通過指定版本來安裝特定版本安裝。

但是,我不知道如何將它們與正常版本分開。例如,版本 3.1 將覆蓋版本 2abdc4a,或者相反,送出 924af32 將覆蓋 3.1。

是否有一個欄位(例如在控製或更改日誌文件中)表明某個軟體包版本是實驗性的,不應安裝以代替正常版本?

這有兩個方面。

首先是版本編號。由於您希望您的版本保持順序,因此您需要包括版本以及雜湊。為了確保版本正確排序,這通常通過在雜湊之前附加建構日期來完成,如果每天可以有多個建構,則在兩者之間添加一個快照號(例如,參見 Debian Go 打包策略)。在你的情況下,你會有類似的版本

  • 3.1 最新版本
  • 3.1+git20220725.1.2abdc4a 對應於雜湊 2abdc4a 的建構(假設這是今天的第一個雜湊)
  • 3.1+git20220725.2.924af32 對應雜湊 924af32 的建構(假設這是今天的第二個雜湊)

第二個是將發布包與快照包分開。要處理這個問題,您需要拆分儲存庫,或者更確切地說,您需要為發布包託管一個“套件”,為快照/實驗包託管另一個。有關後者的範例,請參見Debian 的實驗Release文件;設置“NotAutomatic: yes”可確保軟體包不能自動安裝或用作升級。

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