apt(advanced packaging tool),是debian linux和基於debian進行開發的linux發行版(如ubuntu)使用的高階包管理系統.apt最初的設計目的是處理debian系統中的.deb軟體包,但現在通過apt4rpm,已經可以在其他系統處理rpm軟體包了.
apt通過自動獲取軟體包(從wan,lan,cdrom上)自動配置,自動編譯和安裝apt源.,他可以很大程度上簡化在linux系統上安裝和刪除軟體的過程.
apt並不是某個具體的命令,而是由一組命令組成的包管理工具集,最常用的apt命令包括apt-get和apt-cache.
設定apt源
apt源的設定對debian系統非常重要,這要正確設定了apt源,apt源等管理命令才能實現其強大的包管理功能.
設定apt源的檔案位置在/etc/apt/的sources.list檔案,典型的sources.list檔案如下:
$cat /etc/apt/sources.list
deb
stable main
deb-src
stable main
deb
stable/updates main
將debian的安裝光碟做為源
apt-cdrom命令用於掃瞄debian安裝光碟資訊,也將安裝光碟做為安裝源新增到sources.list裡.
在使用apt-cdrom命令前,確認當前主機的光碟驅動器中已經放入debian linux的安裝光碟,並且當前的debian系統能夠正確的識別光碟機裝置.
apt-cdrom的命令格式為:apt-cdrom [選項] 命令
命令包括:
add: 增加乙個cdrom
ident: 報告cdrom的驗證資訊
選項包括:
-h: 幫助
-d: 光碟掛載點
-r: 為乙個已經識別的光碟改名字
-m: 無掛載
-f: 快速模式,不檢查軟體包檔案
-a: 完整掃瞄模式
-c=?: 讀取配置檔案
-o=?: 設定任意的配置選項,例如-o dir::cache=/temp
掃瞄安裝光碟資訊
apt-cdrom ident 命令可以掃瞄debian安裝光碟的內容,並給出光碟的相應資訊.該命令只顯示安裝光碟資訊,而不修改sources.list檔案.
新增安裝做為安裝源
apt-cdrom add 命令用於將當前光碟驅動器中的debian安裝光碟新增到sources.list檔案源列表中做為系統安裝源.
apt-setup設定軟體源和apt**
不管通過什麼手段新增了apt的sources.list的安裝源,都需要更新軟體資訊
apt-get update 更新軟體資訊
查詢軟體包資訊
apt包管理的大多數資訊查詢功能都可以由apt-cache命令實現,通過apt-cache命令配合不同的子命令和引數的使用,可以實現查詢,顯示軟體包資訊及包依賴關係等功能.
顯示資料來源中的包的統計資訊
apt-cache stats命令用於顯示當前系統所使用的debian資料來源的統計資訊,使用者可以使用該命令檢視資料來源的相關統計資訊.
按關鍵字查詢軟體包
apt-cache search 命令可以按關鍵字查詢軟體包,通常用於查詢的關鍵字會使用軟體包的名字或軟體包的一部分.
例如:apt-cache search vim
顯示軟體包的詳細資訊
通過apt-cache search 命令查詢到與關鍵字相關聯的軟體包後,可以使用apt-cache show命令顯示指定軟體包的詳細資訊.
例如:apt-cache show vim
查詢軟體包的依賴關係
通過apt包管理工具可以有效的解決軟體包的安裝,解除安裝過程中的包依賴關係問題,而當使用者需要了解某個軟體包依賴於其他哪些包時,可以使用apt-cache depends來查詢包依賴關係.
例如:apt-cache depends vim
查詢軟體包反向依賴關係
apt-cache rdepend命令用於查詢指定軟體包的反向依賴關係,即那些其他的軟體包需要依賴指定的軟體包做為安裝和執行的必須條件.
管理軟體包
debian linux 系統中的軟體包管理功能通常可以使用apt-get 命令完成,常用功能包括:公升級軟體包,安裝軟體包,和解除安裝軟體包.
公升級系統中的軟體包
當使用debian一段時間過後,debian工程師們會公升級一些軟體包的版本,而apt-get upgrade命令就是使本機的軟體包版本和debian公升級後的軟體包版本同步.
使用apt-get upgrade公升級軟體包之前,需要執行apt-get update 命令從當前系統使用的debian資料來源中更新軟體包列表.
公升級整個系統的版本
apt-get dist-upgrade與公升級系統中的軟體包不同的是,apt-get dist-upgrade是將整個系統都公升級了過去,例如安裝光碟使用的是stable 而我卻想使用testing,怎麼辦吶~?
首先編輯sources.list 把stable的軟體伺服器指向testing
例如:
將deb
stable main中的stable改為testing就會將軟體伺服器指向testing,這樣在輸入apt-get dist-upgrade 就會將整個版本公升級為testing版.
安裝軟體包
apt-get install 通過這條命令就可以輕鬆的完成安裝過程.
重新安裝指定的軟體包
到系統中的某個軟體包安裝到系統中的檔案受到破壞,或需要安裝軟體包的新版本時,使用者可以使用apt-get --reinstall install命令重新安裝指定軟體包.
例如:apt-get --reinstall install lynx
解除安裝軟體包
對於系統中安裝的軟體包,當使用者不需要使用時,可以使用apt-get remove 命令對該軟體包安裝到系統中的檔案進行刪除,該軟體包所使用的配置檔案將不被刪除,當使用者需要在次安裝該軟體包時,可以使用保留下來的配置檔案.
例如:apt-get remove lynx
apt-get remove 可以蠻好的解決軟體包解除安裝過程中的包依賴關係問題,依賴於被解除安裝軟體包的其他軟體包將被一同解除安裝.
解除安裝軟體包和配置檔案(完全解除安裝)
apt-get --purge remove 命令可以從系統中完全解除安裝指定的軟體包,即解除安裝軟體包中檔案的同時還刪除該軟體包所使用的配置檔案,是從系統中刪除某個軟體包最徹底的方法.
例如:apt-gt --purge remove lynx
清除無用的安裝包
可以通過rm命令刪除/var/cahce/apt/archives/目錄中的軟體包,但這是非常危險的.
建議使用apt-get clean命令安全有效的清理/var/cache/apt/archives/目錄中的檔案.
原始碼包管理
對於一般使用者通常不需要原始碼包管理,使用apt-get就可以很好的安裝.如果對軟體包需要特殊的訂製,就需要對原始碼包進行管理.
檢視原始碼包檔案資訊
例如:apt-cache showsrc lynx
獲取原始碼包
例如:mkdir temp
cd temp
apg-get source lynx
構件原始碼包編譯環境
每個軟體原始碼包在進行編譯之前都需要先構件該原始碼包的編譯環境,即安裝該原始碼包編譯所需要的其他軟體包.
通過apt-get build-deb命令可以為指定的原始碼包構件編譯環境.
例如:apt-get build-deb lynx
常見命令使用舉例:
apt-cache search pkg 搜尋包
apt-cache show pkg 查詢包的詳細資訊,如說明大小版本
apt-cache depends pkg 了解包依賴關係
apt-cache rdepends pkg 查詢反向依賴關係
apt-get install pkg 安裝
apt-get install pkg --reinstall 重新安裝
apt-get install -f pkg 強制安裝
apt-get remove pkg 刪除包
apt-get remove pkg --purge 刪除包,包括配置資訊
apt-get build-dep pkg 安裝相關的編譯環境
apt-get autoclean 只清理無用的包
apt-get check 檢查是否有損壞的依賴
apt-get update 更新軟體源
apt-get upgrade 更新已經安裝的軟體
apt-get dist-upgrade 系統公升級
apt-get dselect-upgrade 使用dselect公升級
APT介紹及使用
apt advanced packaging tool 是debian linux和基於debian進行開發的linux發行版 如ubuntu 使用的高階包管理系統.apt最初的設計目的是處理debian系統中的.deb軟體包,但現在通過apt4rpm,已經可以在其他系統處理rpm軟體包了.apt通...
apt使用參考
apt cache search package 搜尋包 apt cache show package 獲取包的相關資訊,如說明 大小 版本等 sudo apt get install package 安裝包 sudo apt get install package reinstall 重新安裝包 ...
學習使用apt 二
4.1如何安裝本地預編譯包 equivs 有時也許我們會希望安裝乙個特定版本的程式,但是卻沒有debian包而只有原始碼包.但是當這樣做時包管理系統會遇到麻煩.假如我們要編譯乙個新版本的郵件伺服器.一切順利,但是在debian系統上許多的軟體包要依賴mta mail transport agent ...