Debian
debian/control
文件中的條件依賴
我正在打包軟體,這取決於官方 Debian 發行版中提供的特定版本的庫。該軟體還具有捆綁的庫源。
有沒有什麼方法可以在
debian/control
文件中描述這一點,對於 10 之前的 Debian 版本,我不需要指定任何內容,但是對於 >= 10,我可以使用發布的版本作為建構要求?此外,對於舊版本(如何在
debian/rules
文件中檢測到它?)我必須cmake
在配置步驟中傳遞一個附加選項。
對此沒有任何規定:期望源包(包括
debian/control
)上傳到特定的發行版和發行版,並帶有建構說明,包括建構依賴項,這些說明在該發行版中工作。在某些情況下,可以動態修改
debian/control
fromdebian/rules
,但這不適用於建構依賴項,因為它們在建構開始之前就已解決。在實踐中,有兩種方法可以為您工作:
- 使用某種模板工具來獲取公共源並為您關心的每個目標生成
debian/control
和生成;debian/rules
- 在版本控制系統中使用分支來分離各種目標,但仍然允許相當簡單的維護。
後者是大多數軟體包在 Debian 中的維護方式,當它們需要允許上傳到多個目標時(例如,實驗性或穩定或反向移植以及不穩定)。
此外,對於舊版本(如何在
debian/rules
文件中檢測到它?)我必須cmake
在配置步驟中傳遞一個附加選項。你永遠不需要這樣做;與其檢測舊版本並對行為進行硬編碼,不如檢測您嘗試實施的行為。例如,檢查系統上是否存在依賴庫,並
cmake
相應地調整呼叫;或者如果有cmake
問題,請檢測已安裝的cmake
.