我的包取決於FOO這樣:可以`建立 - 取決於:`指定一個包的舊版本?
Build-Depends: foo (>= 2.99.2)
不過,我發現,由於API破損,富v2.99.3和2.99.4導致不兼容與我的包的版本。
我可以指定一個Build-Depends字段,指出它只能拉2.99.2版本嗎? (不是更高或更低)
我只是嘗試foo(= 2.99.2),但它不起作用。它說Unmet build-dependency in source
。
我的包取決於FOO這樣:可以`建立 - 取決於:`指定一個包的舊版本?
Build-Depends: foo (>= 2.99.2)
不過,我發現,由於API破損,富v2.99.3和2.99.4導致不兼容與我的包的版本。
我可以指定一個Build-Depends字段,指出它只能拉2.99.2版本嗎? (不是更高或更低)
我只是嘗試foo(= 2.99.2),但它不起作用。它說Unmet build-dependency in source
。
是的,你可以指定一個確切的版本=
(relevant section of Policy)。
這並不完全清楚,但您可能會遇到麻煩,因爲foo
的版本具有Debian修訂版;也就是說,整個版本可能是2.99.2-3
或類似的。如果你想要一個確切的版本,你需要指定確切的版本。
如果是這種情況,您可能需要執行類似foo (>= 2.99.2), foo (<< 2.99.3)
的操作,以涵蓋整個2.99.2s的範圍。
編輯添加:我一直假設你確實已經安裝了必要的版本,但是你對「pull」這個詞的使用讓我想知道你的問題是不是在apt一邊。可能你正在使用像pbuilder這樣的構建框架,它試圖自動安裝它的構建依賴項,而自動安裝是失敗的部分。如果是這樣的話,您需要通過apt源創建2.99.2
版本,或者在構建之前手動將其安裝到構建環境中。
如果API破損是暫時的,說是由於錯誤,那麼你可以使用這些特定版本內建衝突,但你可能必須處理所有可能的修改,等等。在Debian中,我們通常不考慮這樣的並假定對於短暫的錯誤,它們必須被修正。否則,我們可能會陷入非常混亂的依賴關係。
如果這是一個永久性的API破損,並且這是發行版的一部分,那麼您需要更新您的軟件包,請求恢復構建依賴關係時請求API破壞,或者使用另一個名稱打包舊構建依賴項,通常沒有辦法解決這個問題。
相反,如果這是一個本地/自定義庫,在這裏,你可能有可用於構建依賴多個版本,那麼你仍然可以加上像Build-Conflicts: foo (>= 2.99.3)
一個版本內建衝突。或者如果這真的只適用於2.99.2
,那麼像 Build-Depends: foo (>= 2.99.2), foo (<< 2.99.3)
可能會更好地工作。