Linux下的依賴關系令人頭疼,尤其是提示如下錯誤的時候:
下列軟件包有未滿足的依賴關系:
xxx : 依賴: xxx 但是它將不會被安裝
E: 無法修正錯誤,因為您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關系。
查了一下,有很多是因為要安裝的包需要依賴較低級的包,所以可以通過 sudo aptitude install
來嘗試通過降級解決問題。
比如我要安裝libgtk2.0-dev
,但是這貨的依賴都是較低版本的包,導致這個包沒法安裝,解決方法如下:
sudo apt-get install aptitude
# 安裝 aptitude 包管理器
sudo aptitude install libgtk2.0-dev
# 提示未滿足依賴關系,給出了類似1) libcairo2-dev [未安裝的] 等提示,問是否接受該解決方案?[Y/n/q/?]
n
# 不接受該解決方案,然后會提示降級下列軟件包,問是否接受該解決方案?[Y/n/q/?]
y
# 接受降級,此時會發現新安裝包列表里果然有libgtk2.0-dev,然后會提示您要繼續嗎?[Y/n/?]
y
# 繼續,確認安裝
# 安裝成功!其他搞不定的包也可以如此嘗試,不過降級之前需要仔細看下版本號變化,如果差太多還需要慎重考慮