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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...