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