2011-03-01 62 views
2

我正在創建一個依賴於另一個的包。包1的版本號是8.5.2-xxxxxxxxxxxx。我試圖讓包2依賴於8.5.2並忽略修訂號。它必須完全取決於8.5.2,但任何8.5.2版本都可以。我讀過的所有東西似乎都表明,我只能指定版本,但不包含控制文件中Depends和其他設置的版本號,但這不起作用。它總是說:Debian控制文件依賴問題

dpkg:依賴關係問題阻止配置[product2]: [product2]取決於[product1](= 8.5.2);但是: 系統上[product1]的版本是8.5.2-xxxxxxxxxxxx。

這裏我決定在控制文件

取決於行:[產品1](= 8.5.2)

任何人都知道這是可能的嗎?

回答

4

您可以結合多個取決於單個包進行更嚴格的匹配。

Depends: [product1] (>= 8.5.2), [product1] (<< 8.5.3) 

這是一個相當髒的解決方案,但我相信像8.5.3〜beta1這樣的版本號仍然會被接受。在這種情況下,更骯髒的解決方案是使用(<< 8.5.3~~)

+0

這個例子中「〜」字符的含義是什麼? – user640071 2011-03-02 14:44:04

+2

在Debian中比較軟件包版本號的方式由'dpkg'處理。在'dpkg'中,**〜**字符被賦予一個低於** nul **的值,其他所有字符都被賦值。例如,這是'dpkg'所看到的順序:0.5,0.9,1.0〜rc1,1.0〜rc2,1.0,1.0.1 – Arrowmaster 2011-03-02 17:31:22