天天看點

Ubuntu/Debian系統軟體包管理

一、Ubuntu中軟體安裝方法

1、APT方式

(1)普通安裝:apt-get install softname1 softname2 …;

(2)修複安裝:apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)

(3)重新安裝:apt-get --reinstall install softname1 softname2...;

2、Dpkg方式

(1)普通安裝:dpkg -i package_name.deb

3、源碼安裝(.tar、tar.gz、tar.bz2、tar.Z)

首先解壓縮源碼壓縮包然後通過tar指令來完成

a.解xx.tar.gz:tar zxf xx.tar.gz 

b.解xx.tar.Z:tar zxf xx.tar.Z 

c.解xx.tgz:tar zxf xx.tgz 

d.解xx.bz2:bunzip2 xx.bz2 

e.解xx.tar:tar xf xx.tar

然後進入到解壓出的目錄中,建議先讀一下README之類的說明檔案,因為此時不同源代碼包或者預編譯包可能存在差異,然後按說明檔案執行。

一般依次執行./configure

                     Sudo make

                     sudo make install

即可完成安裝。

二、Ubuntu中軟體包的解除安裝方法

(1)移除式解除安裝:apt-get remove softname1 softname2 …;(移除軟體包,當包尾部有+時,意為安裝)

(2)清除式解除安裝 :apt-get --purge remove softname1 softname2...;(同時清除配置)

        清除式解除安裝:apt-get purge sofname1 softname2...;(同上,也清除配置檔案)

(1)移除式解除安裝:dpkg -r pkg1 pkg2 ...;

(2)清除式解除安裝:dpkg -P pkg1 pkg2...;

三、Ubuntu中軟體包的查詢方法

Dpkg 使用文本檔案來作為資料庫.通稱在 /var/lib/dpkg 目錄下. 在 status 檔案中存儲軟體狀态,和控制資訊. 在 info/ 目錄下備份控制檔案, 并在其下的 .list 檔案中記錄安裝檔案清單, 其下的 .mdasums 儲存檔案的 MD5 校驗值.

Ubuntu/Debian系統軟體包管理

每條記錄對應一個軟體包, 注意每條記錄的第一, 二, 三個字元. 這就是軟體包的狀态辨別, 後邊依此是軟體包名稱, 版本号, 和簡單描述.

·        第一字元為期望值,它包括:

·        u 狀态未知,這意味着軟體包未安裝,并且使用者也未發出安裝請求.

·        i 使用者請求安裝軟體包.

·        r 使用者請求解除安裝軟體包.

·        p 使用者請求清除軟體包.

·        h 使用者請求保持軟體包版本鎖定.

·        第二列,是軟體包的目前狀态.此列包括軟體包的六種狀态.

·        n 軟體包未安裝.

·        i 軟體包安裝并完成配置.

·        c 軟體包以前安裝過,現在删除了,但是它的配置檔案還留在系統中.

·        u 軟體包被解包,但還未配置.

·        f 試圖配置軟體包,但是失敗了.

·        h 軟體包安裝,但是沒有成功.

·        第三列辨別錯誤狀态,可以總結為四種狀态. 第一種狀态辨別沒有問題,為空. 其它三種符号則辨別相應問題.

·        h 軟體包被強制保持,因為有其它軟體包依賴需求,無法更新.

·        r 軟體包被破壞,可能需要重新安裝才能正常使用(包括删除).

·        x 軟包件被破壞,并且被強制保持.

Debian系統中所有的包資訊都在/var/lib/dpkg下.其中/var/lib/dpkg/info目錄中儲存了各個軟體包的資訊及管理檔案.每個檔案的作用如下:

以 ".conffiles"     結尾的檔案記錄軟體包的配置清單.

以 ".list"         結尾的檔案記錄了軟體包的檔案清單,使用者可在檔案當中找到軟體封包件的具體安裝位置.

以 ".md5sums"      結尾的檔案記錄了md5資訊,用來進行包的驗證的.

以 ".config"       結尾的檔案是軟體包的安裝配置角本.

以 ".postinst"      是完成Debian包解開之後的配置工作,通常用來執行所安裝軟體包相關的指令和服務的重新啟動.

以 ".preinst"      在Debain解包之前運作,主要作用是是停止作用于即将更新的軟體包服務直到軟體包安裝或和更新完成.

以 ".prerm"        負責停止與軟體包關聯的daemon服務,在删除軟體包關聯檔案之前執行.

以 ".postrm"       負責修改軟體包連結或檔案關聯,或删除由它建立的檔案.

dpkg包管理工具

dpkg -r 解除安裝軟體包.不是完全的解除安裝,它的配置檔案還存在.

dpkg --info "軟體包名" --列出軟體包解包後的包名稱.

dpkg -l     --列出目前系統中所有的包.可以和參數less一起使用在分屏檢視.

dpkg -l |grep -i "軟體包名" --檢視系統中與"軟體包名"相關聯的包.

dpkg -s   查詢已安裝的包的詳細資訊. dpkg -L   查詢系統中已安裝的軟體包所安裝的位置.

dpkg -S   查詢系統中某個檔案屬于哪個軟體包.

dpkg -I   查詢deb包的詳細資訊,在一個軟體包下載下傳到本地之後看看用不用安裝.

dpkg -i 手動安裝軟體包(這個指令并不能解決軟體包之前的依賴性問題),如果在安裝某一個軟體包的時候遇到了軟體依賴的問題,可以用apt-get -f install在解決信賴性這個問題.

dpkg -reconfigure 重新配置 

dpkg -P 全部解除安裝

dpkg –L 列出 安裝的所有檔案清單。同時請看 dpkg -c 來檢查一個 .deb 檔案的内容。

echo " hold" | dpkg --set-selections  設定包的狀态為 hlod (指令行方式)

dpkg --get-selections "" 擷取包的目前狀态 (指令行方式)

APT管理工具常用指令

 apt-cache search # ------(package 搜尋包)

apt-cache show #------(package 擷取包的相關資訊,如說明、大小、版本等)

apt-get install # ------(package 安裝包)

apt-get install # -----(package --reinstall 重新安裝包)

apt-get -f install # -----(強制安裝, "-f = --fix-missing"當是修複安裝吧...)

apt-get remove #-----(package 删除包)

apt-get remove --purge # ------(package 删除包,包括删除配置檔案等)

apt-get autoremove --purge # ----(package 删除包及其依賴的軟體包+配置檔案等(隻對6.10有效,強烈推薦))

apt-get update #------更新源

apt-get upgrade #------更新已安裝的包

apt-get dist-upgrade # ---------更新系統

apt-get dselect-upgrade #------使用 dselect 更新

apt-cache depends #-------(package 了解使用依賴)

apt-cache rdepends # ------(package 了解某個具體的依賴,當是檢視該包被哪些包依賴吧...)

apt-get build-dep # ------(package 安裝相關的編譯環境)

apt-get source #------(package 下載下傳該包的源代碼)

apt-get clean && apt-get autoclean # --------清理下載下傳檔案的存檔 && 隻清理過時的包

apt-get check #-------檢查是否有損壞的依賴

dpkg -S filename -----查找filename屬于哪個軟體包

apt-file search filename -----查找filename屬于哪個軟體包

apt-file list packagename -----列出軟體包的内容

apt-file update --更新apt-file的資料庫

apt-cache 加上不同的子指令和參數的使用可以實作查找,顯示軟體,包資訊及包信賴關系等功能.

apt-cache stats 顯示目前系統所有使用的Debain資料源的統計資訊.

apt-cache search +"包名",可以查找相關的軟體包.

apt-cache show   +"包名",可以顯示指定軟體包的詳細資訊.

apt-cache depends +"包名",可以查找軟體包的依賴關系.

apt-get upgrade   更新系統中所有的包到最新版

apt-get install   安裝軟體包

apt-get --reinstall重新安裝軟體包

apt-get remove 解除安裝軟體包

apt-get --purge remove 完全解除安裝軟體包

apt-get clean 清除無用的軟體包

在用指令apt-get install之前,是先将軟體包下載下傳到/var/cache/apt/archives中,之後再進行安裝的.是以我們可以用apt-get clean清除/var/cache/apt/archives目錄中的軟體包.

源碼包安裝

  apt-cache showsrc 查找看源碼包的檔案資訊(在下載下傳之前)

  apt-get source 下載下傳源碼包.

  apt-get build-dep +"包名" 建構源碼包的編譯環境.