Debian

debian/control 文件中的條件依賴

  • August 7, 2021

我正在打包軟體,這取決於官方 Debian 發行版中提供的特定版本的庫。該軟體還具有捆綁的庫源。

有沒有什麼方法可以在debian/control文件中描述這一點,對於 10 之前的 Debian 版本,我不需要指定任何內容,但是對於 >= 10,我可以使用發布的版本作為建構要求?

此外,對於舊版本(如何在debian/rules文件中檢測到它?)我必須cmake在配置步驟中傳遞一個附加選項。

對此沒有任何規定:期望源包(包括debian/control)上傳到特定的發行版和發行版,並帶有建構說明,包括建構依賴項,這些說明在該發行版中工作。

在某些情況下,可以動態修改debian/controlfrom debian/rules,但這不適用於建構依賴項,因為它們在建構開始之前就已解決。

在實踐中,有兩種​​方法可以為您工作:

  • 使用某種模板工具來獲取公共源並為您關心的每個目標生成debian/control和生成;debian/rules
  • 在版本控制系統中使用分支來分離各種目標,但仍然允許相當簡單的維護。

後者是大多數軟體包在 Debian 中的維護方式,當它們需要允許上傳到多個目標時(例如,實驗性或穩定或反向移植以及不穩定)。

此外,對於舊版本(如何在debian/rules文件中檢測到它?)我必須cmake在配置步驟中傳遞一個附加選項。

你永遠不需要這樣做;與其檢測舊版本並對行為進行硬編碼,不如檢測您嘗試實施的行為。例如,檢查系統上是否存在依賴庫,並cmake相應地調整呼叫;或者如果有cmake問題,請檢測已安裝的cmake.

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