ubuntu下軟體包安裝故障解決方案(深入剖析專治疑難)

来源:http://www.cnblogs.com/annt/archive/2016/03/03/ant002.html
-Advertisement-
Play Games

前言:apt-get在安裝大多數包時是沒有問題的,但有些時候用apt-get命令安裝包出現錯誤提示如:the following packages have unmet dependencies(下列軟體包存在未滿足的依賴關係),通常可以採取更新軟體源的方法,這樣一般可以解決大多數軟體包安裝問題,但


前言:apt-get在安裝大多數包時是沒有問題的,但有些時候用apt-get命令安裝包出現錯誤提示如:the following packages have unmet dependencies(下列軟體包存在未滿足的依賴關係),通常可以採取更新軟體源的方法,這樣一般可以解決大多數軟體包安裝問題,但是有些疑難的包依賴問題僅憑這個方法是解決不了的就需要使用aptitude深入解決了。
平臺環境:ubuntu14.04


1. 一般用apt-get命令安裝包出現問題提示如:the following packages have unmet dependencies(下列軟體包存在未滿足的依賴關係),我們首先可以採取更新軟體源列表的方法,如果更新過程沒有提示”無法下載“的情況,成功更新了源一般即可順利安裝所需的包,即執行以下指令

 

sudo apt-get update

 

2.如果直接更新源列表還是不能安裝包,請先清除包緩存,再更新源,即依次執行以下指令後再嘗試安裝

 

sudo apt-get clean all
sudo apt-get update

 

 

 

註:clean是清除本地所有的包緩存文件,即這個文件夾 /var/cache/apt/archives/ 和/var/cache/apt/archives/partial/下的所有除了鎖定了的文件

3.以上不能解決問題,就嘗試更換源,如下圖所示進入ubuntu軟體中心--設置界面--圖示位置選擇國內的其他較快的伺服器

 

之後再執行sudo apt-get update指令。

4.如果出現更新源列表失敗,提示錯誤如:無法下載......Hash和校驗不符,這是由於身份校驗信息出錯導致,可以把軟體中心的源設置菜單的身份驗證密鑰設置為預設值,如下圖所示,把紅框內的密鑰依次設置為預設值,再嘗試更新列表就解決啦!


5.另外有些時候使用apt-get指令安裝包時會出現以下錯誤提示,同樣是依賴關係錯誤:the following packages have unmet dependencies(下列軟體包存在未滿足的依賴關係),同時伴隨提示說:這個包(姑且稱為A吧)依賴於包B,但是包B將不被安裝,無法修正錯誤,因為您要求某些軟體包保持現狀,就是它們破壞了軟體包間的依賴關係。此時用apt-get指令是無論如何也不明白所以然的,什麼叫您要求保持現狀,就是這個原因不能安裝,氣死人!此時如果使用aptitude命令就能明白所以然了。
aptitude 是 Debian GNU/Linux 系統中, 非常神奇的的軟體包管理器,基於大名鼎鼎的 APT 機制, 整合了 dselect 和 apt-get的所有功能, 並提供的更多特性,特別是在依賴關係處理上。aptitude與 apt-get 一樣,是 Debian 及其衍生系統中功能極其強大的包管理工具。與 apt-get 不同的是,aptitude在處理依賴問題上更佳一些。舉例來說,aptitude在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為乾凈。
當我們用這個aptitude(如果沒有這個命令需要先用apt-get安裝一下這個包)時會發現詳細的依賴關係說明瞭,如安裝libgtk2.0-dev(A包)時,提示它依賴這個包libpango1.0-dev(B包),而B又依賴libpango-1.0-0 (=1.36.3-1ubuntu1)(C包),但是系統已經安裝了C包的一個更新的版本1.36.3-1ubuntu1.1 (D包)這樣如果要安裝這個A包就得降級D包到C包,然後安裝了B再安裝A,想想如果這個A包依賴了更多的要降級的包,這將是怎樣一個龐大的工程來安裝它,此時aptitude面對這種疑難雜症就要發揮神威了,它會給出多種解決方案,您只需要判斷解決方案是否合適即可,通常提示要降級某些包,這樣的情況按照提示執行即可成功解決依賴的問題。但是另外特別需要註意的是aptitude的使用是有風險的,如果你看的安裝某個包時提示有很多包衝突了,給出的解決方案是要刪除某些包,而且還是一大串,這時要註意了,不當的刪除會一步步把你的系統刪崩潰(我輕身經歷啊啊啊),這時就不要採取aptitude給出的方案了,還是要參照前述再軟體源的方向上著手解決依賴的問題。
註:軟體包的4種關係
軟體包之間存在四種關係:(1)depend upon 依賴關係。若A依賴B,則B必須安裝後,A的核心功能才能正常運行; (2)recommend 推薦關係。若A推薦B,則B安裝後,A常用到的附加功能才能正常運行; (3)suggest 建議關係。若A建議B,則B安裝後,A不常用到的增強功能才能正常運行; (4)conflict 衝突關係。若A與B衝突,則A和B不能同時安裝
 總結:ubuntu在使用過程中包安裝是常事,掌握好apt-get及aptitude等包管理指令很重要,遇到包安裝問題多在互聯網上搜索,一般你遇到的別人都遇到過,群眾的力量是無窮滴!

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們知道很多事情都存在一個分治的思想,同樣的道理我們也可以用到數據表上,當一個表很大很大的時候,我們就會想到將表拆 分成很多小表,查詢的時候就到各個小表去查,最後進行彙總返回給調用方來加速我們的查詢速度,當然切分可以使用橫向切分,縱向 切分,比如我們最熟悉的訂單表,通常會將三個月以外的訂單放到歷史訂
  • CentOS7.0中MariaDB的簡單安裝與配置方法
  • 當資料庫出現嚴重的性能問題或者hang了的時候,伺服器端sqlplus也無法連接時,此時如果想獲取資料庫當前的狀態信息,以便事後診斷,那麼我們非常需要通過systemstate dump來知道進程在做什麼,在等待什麼,誰是資源的持有者,誰阻塞了別人。在出現上述問題時,及時收集systemstate ...
  • 一、簡介 Redis的啟動也就是main函數的執行,程式的入口在redis.c中,啟動流程: 1. 初始化預設伺服器配置,如果是sentinel模式還需進行額外的配置 2. 修改配置文件或配置選項,這其中包括處理諸如-h/--help,-v/--version,--test-memory的特殊選項,
  • 最近遇到一個很有意思的使用環境,操作人員將所有的網站應用內容投放到共用存儲裡面,並且使用微軟的SMB協議將其以CIFS的方式共用出來,使用Windows Server 2008 R2的IIS將其連接起來。在多IIS主機的情況下,實現一次部署,多點生效的效果。 不過在使用的時候遇到了一些問題,在漢語世
  • 藍牙Bluetooth技術以及廣泛的應用於各種設備,並將繼續在物聯網IoT領域擔任重要角色。下麵搜集整理了一些關於藍牙技術的小知識,以備參考。藍牙Bluetooth技術始創於1994年,其名字來源於10世紀時的一位丹麥國王Harold Bluetooth,他統一了現在的挪威、瑞典和丹麥地區,以他的名...
  • 阿裡雲 Ubuntu 14.*上搭建laravel環境 之前做項目時都是搭建在自己的伺服器上,可是自己的那個伺服器是很久以前一點點配置好的,也是各種百度,該忘記的都忘了, 所以前一段在客戶的阿裡雲Ubuntu上搭建項目時發現又出了問題, laravel框架連接mysql報錯,具體錯誤碼記不住了,大概
  • 系統來自系統媽:http://www.xitongma.com/ 系統概述 蘿蔔家園GHOST win7 64位裝機旗艦版加快“網上鄰居”共用速度;取消不需要的網路服務組件,系統支持Windows安裝,可以在Windows中一鍵安裝了,方便了不會COMS設置和GHOST的人。集成了自2015年流行的
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...