Ubuntu下安装依赖的几个解决方案
在Ubuntu的使用中想必大家經常遇見這句話:“E: 無法修正錯誤,因為您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關系”
對于這個問題,網上有很多解決方案,但是大多不靠譜.以往我一般都是手動處理 (當然我們也可以使用aptitude來自動解決安裝依賴問題,詳細見下文),如果是一個軟件的版本問題,直接安裝指定版本.比如:
在顯示liblapack3 : 依賴: libgfortran3 (>= 4.6) 但是它將不會被安裝 E: 無法修正錯誤,因為您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關系。的時候,部分情況可以直接使用sudo apt-get -f install libgfortran3>=4.6,來進行解決.
但是如圖中所示,這次不行,為什么呢?因為一般而言安裝制定版本的軟件所對應的問題是軟件版本過高的的問題.但是在這里并不是這樣,而是因為安裝這個軟件還有很多的其他依賴這里無法提供.
這個時候就要輪到下面的這種方法了.
那就是使用aptitude來代替apt,aptitude與 apt-get 一樣,是 Debian 及其衍生系統中功能極其強大的包管理工具。與 apt-get 不同的是,aptitude在處理依賴問題上更佳一些。舉例來說,aptitude在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為干凈。而在安裝軟件時,它不僅僅可以提供像apt那樣的普通功能,還能夠提供在安裝依賴沖突時的解決方案。
比如我在安裝R時發現安裝沖突,這個時候我們就可以使用sudo aptitude install r-base-core來解決這個問題。一開始的時候,aptitude也會想apt那樣檢測到依賴沖突,然后給出一個解決方案。但是不同的地方在于對于解決方案你有三個選擇(y/n/q),y就是同意,n不同意,然后會繼續給出下一個解決方案。q–>退出,放棄安裝。假如一開始它推薦給你不安裝的時候,你就可以選擇n,然后一般而言第二個解決方案將會自動降級安裝依賴的軟件(如果是一系列軟件版本過高的話),這個時候選擇同意基本都可以安裝成功。
如圖:
不過唯一美中不足的問題在于,這樣安裝之后的 軟件版本會比較低。不過好在確實可以用了。
參考
總結
以上是生活随笔為你收集整理的Ubuntu下安装依赖的几个解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy八小时快速入门第一小时:安装
- 下一篇: Ubuntu16.04 安装R与RStu