1. 程式人生 > >五、學習筆記-Linux軟體包管理(2)

五、學習筆記-Linux軟體包管理(2)

APT高階軟體包管理工具

工作原理

Ubuntu採用集中式的軟體倉庫機制,將各式各樣的軟體包分門別類地存放在軟體倉庫中,進行有效地組織和管理。然後,將軟體倉庫置於許許多多的映象伺服器中,並保持基本一致。因此,對於使用者,這些映象伺服器就是他們的軟體源(reposity)。
在這裡插入圖片描述
在Ubuntu系統中,使用軟體源配置檔案/etc/apt/sources.list 列出最合適訪問的映象站點地址。
軟體源配置檔案只是告知Ubuntu系統可以訪問的映象站點地址。但那些映象站點都擁有什麼軟體資源並不清楚。若是每安裝一個軟體包,就在伺服器上尋找一邊,效率是很低的。因而,就有必要為這些軟體資源列個清單(建立索引檔案

),以便本地主機查詢。這就是APT軟體包管理器的工作原理。

軟體源配置檔案

/etc/apt/sources.list。本質就是一個普通的文字檔案,可以在超級管理員授權下,使用任何文字編輯器進行編輯。在該檔案中,新增的軟體源映象站點稱為一個配置項,並遵循以下格式:

DebType  AddressType://Hostaddress/Ubuntu  Distribution  Component1  Component2……

deb  http://cn.archive.ubuntu.com/ubuntu/ feisty  main  restricted  universe  multiverse

軟體源

  • 根據軟體包的開發組織對該軟體的支援程度,以及遵從的開源程度,劃分為如下四類:
  • 核心(Main):官方維護的開源軟體,是由Ubuntu官方完全支援的軟體,包括大多數流行的、穩定的開源軟體,是Ubuntu預設安裝的基本軟體包;
  • 公共(Universe):社群維護的開源軟體,是由Ubuntu社群的計算機愛好者維護的軟體。這些軟體包沒有安全升級的保障。使用者在使用時,需要考慮這些軟體包存在的不穩定性;
  • 受限(Restricted):官方維護的非開源軟體,是專供特殊用途,而且沒有自由軟體版權,不能直接修改軟體,但依然被Ubuntu團隊支援的軟體;
  • 多元化(Multiverse):非Ubuntu官方維護的非開源軟體
    ,使用者使用這些軟體包時,需要特別注意版權問題。

重新整理軟體源

修改了配置檔案——/etc/apt/sources.list,目的只是告知軟體源映象站點的地址。但那些所指向的映象站點所具有的軟體資源並不清楚,需要將這些資源列個清單,以便本地主機知曉可以申請哪些資源。
使用“apt-get update”命令會掃描每一個軟體源伺服器,併為該伺服器所具有軟體包資源建立索引檔案,存放在本地的**/var/lib/apt/lists/**目錄中。

sudo apt-get update

管理軟體包

  • 在Ubuntu Linux中,通常使用apt-get命令管理軟體包,只需告知軟體包名字,就可以自動完成軟體包的獲取、安裝、編譯和解除安裝,以及檢查軟體包依賴關係。
  • apt-get命令提供了一個軟體包管理的命令列平臺。在這個平臺上使用更豐富的子命令,完成具體的管理任務。
apt-get  subcommands  [ -d | -f | -m | -q | --purge | --reinstall | - b | - s | - y | - u | - h | -v ]  pkg

apt-get中的子命令
在這裡插入圖片描述

apt-get中的子選項
在這裡插入圖片描述

修復軟體包依賴

  • 如果由於故障而中斷軟體安裝過程,可能會造成關聯的軟體包只有部分安裝。之後,使用者就會發現該軟體既不能重灌又不能刪除。
  • 作為組合命令,下面前者用於檢查軟體包依賴關係,後者用於修復依賴關係。
“apt-get check”——“apt-get -f install”
  • 在處理依賴關係上,apt-get會自動下載並安裝具有依賴關係(depends)的軟體包,但不會處理與安裝軟體包存在推薦(recommends)和建議(suggests)關係的軟體包。

更新軟體包

在Ubuntu Linux中,只需使用命令“apt-get upgrade”就可以輕鬆地將系統中的所有軟體包一次性升級到最新版本。

sudo apt-get upgrade

安裝軟體包

  • 在準備好軟體源並連通網路後,使用者只需告知安裝軟體的名稱,“apt-get install”命令就可以輕鬆完成整個安裝過程,而無須考慮軟體包的版本、優先順序、依賴關係等。
  • 使用“apt-get install”下載軟體包大體分為四步:
    -STEP1,掃描本地存放的軟體包更新列表(由apt-get update命令重新整理更新列表),找到最新版本的軟體包;
    -STEP2,進行軟體包依賴關係檢查,找到支援該軟體正常執行的所有軟體包;
    -STEP3,從軟體源所指的映象站點中,下載相關軟體包;
    -STEP4 ,解壓軟體包,並自動完成應用程式的安裝和配置。
sudo apt-get install 

重新安裝軟體包

當用戶不小心損壞了已安裝的軟體包,而需要修復。或者,希望重新安裝軟體包中某些檔案的最新版本,可以重新安裝軟體包。

sudo apt-get  --reinstall  install 

解除安裝軟體包

  • 不完全解除安裝
    -“apt-get remove”會關注那些與被刪除的軟體包相關的其它軟體包,刪除一個軟體包時,將會連帶刪除與該軟體包有依賴關係的軟體包。
  • 完全解除安裝
    -“apt-get --purge remove”命令在解除安裝軟體包檔案的同時,還刪除該軟體包所使用的配置檔案。

清理軟體包緩衝區

如果使用者認為軟體包緩衝區中的檔案沒有任何價值了,有必要刪除全部下載的軟體包。可以使用“apt-get clean”清理整個軟體包緩衝區,除了lock鎖檔案和partial目錄。

[email protected]:~$ ls    /var/cache/apt/archives/
lock  partial  rxvt_1%3a2.6.4-10_i386.deb  rxvt_2.6.4-12_i386.deb  xchat_2.8.0-0ubuntu4_i386.deb
[email protected]:~$ sudo apt-get clean
[email protected]:~$ ls    /var/cache/apt/archives/
lock  partial
  • 按照依賴關係清理緩衝區中多餘的軟體包
    -如果使用者希望緩衝區中只保留最新版本的軟體包,多餘版本全部清除,可以使用“apt-get autoclean”命令。
[email protected]:~$ ls /var/cache/apt/archives/
lock  partial  rxvt_1%3a2.6.4-10_i386.deb  rxvt_2.6.4-12_i386.deb  xchat_2.8.0-0ubuntu4_i386.deb
[email protected]:~$ sudo apt-get  autoclean
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關係樹
讀取狀態資訊... 完成
Del rxvt 2.6.4-12 [201kB]
[email protected]:~$ ls /var/cache/apt/archives/
lock  partial  rxvt_1%3a2.6.4-10_i386.deb  xchat_2.8.0-0ubuntu4_i386.deb

查詢軟體包資訊

使用apt-cache命令完成查詢軟體源和軟體包的相關資訊。

apt-cache  subcommands  [ -p | -s | - q | - i | - c | -h ]  pkg
選項 描述
-p 軟體包快取
-s 原始碼包的快取
-q 關閉進度獲取
-i 獲取重要的的依賴關係,僅與unmet命令一起使用
-c 讀取指定配置檔案
-h 獲取幫助資訊

在這裡插入圖片描述

查詢軟體包描述資訊

使用“apt-cache show”命令獲取指定軟體包的詳細資訊,包括軟體包安裝狀態、優先順序、適用架構、版本、存在依賴關係的軟體包,以及功能描述。該命令可以同時顯現多個軟體包的詳細資訊。

獲取軟體包安裝狀態

  • 使用“apt-cache policy”可以獲取軟體包當前的安裝狀態
  • 如果使用者僅想了解某個軟體包依賴於哪些軟體包,可以使用“apt-cache depends”命令
  • 如果使用者僅想了解某個軟體包被哪些軟體包所依賴,可以使用“apt-cache rdepends”命令。

軟體源配置檔案 /etc/apt/sources.list
存放軟體包資源索引檔案 /var/lib/apt/lists/
軟體包緩衝區 /var/cache/apt/archives/