Debian和Ubuntu系統的軟體包管理工具

lcy_ltpsr發表於2016-08-21

Debian和Ubuntu系統的軟體包管理工具

Debian和Ubuntu系統的軟體包管理工具主要包括: dpkg、apt-get和aptitude。本文將介紹這三種工具的使用方法

及其區別。


1、dpkg的使用方法
dpkg是一個Debian的一個命令列工具,它可以用來安裝、刪除、構建和管理Debian的軟體包。下面是它的一些命令的使用方法及解釋: 
(1) 安裝軟體
用法: dpkg -i <.deb file name>
示例:dpkg -i sogoupinyin_2.0.0.0078_amd64.deb
(2) 安裝一個目錄下面所有的軟體包
用法:dpkg -R
示例:dpkg -R /usr/local/src
(3) 釋放軟體包,但是不進行配置
用法:dpkg –unpack package_file 如果和-R一起使用,引數可以是一個目錄
示例:dpkg –unpack sogoupinyin_2.0.0.0078_amd64.deb
(4) 重新配置和釋放軟體包
用法:dpkg –configure package_file
如果和-a一起使用,將配置所有沒有配置的軟體包
示例:dpkg –configure sogoupinyin_2.0.0.0078_amd64.deb
(5) 刪除軟體包(保留其配置資訊)
用法:dpkg -r
示例:dpkg -r sogoupinyin
(6) 替代軟體包的資訊
用法:dpkg –update-avail <Packages-file>
(7) 合併軟體包資訊
用法: dpkg –merge-avail <Packages-file>
(8) 從軟體包裡面讀取軟體的資訊
用法:dpkg -A package_file
(9) 刪除一個包(包括配置資訊)
用法:dpkg -P
(10) 丟失所有的Uninstall的軟體包資訊
用法:dpkg –forget-old-unavail
(11) 刪除軟體包的Avaliable資訊
用法:dpkg –clear-avail
(12) 查詢只有部分安裝的軟體包資訊
用法:dpkg -C
(13) 比較同一個包的不同版本之間的差別
用法:dpkg –compare-versions ver1 op ver2
(14) 顯示幫助資訊
用法:dpkg –help
(15) 顯示dpkg的Licence
用法:dpkg –licence (or) dpkg –license
(16) 顯示dpkg的版本號
用法:dpkg –version
(17) 建立一個deb檔案
用法:dpkg -b direc×y [filename]
(18) 顯示一個Deb檔案的目錄
用法:dpkg -c filename
(19) 顯示一個Deb的說明
用法:dpkg -I filename [control-file]
(20) 搜尋Deb包
用法:dpkg -l package-name-pattern
示例:dpkg -I vim
(21) 顯示所有已經安裝的deb包,同時顯示版本號以及簡短說明
用法:dpkg -l
(22) 報告指定包的狀態資訊
用法:dpkg -s package-name
示例:dpkg -s ssh
(23) 顯示一個包安裝到系統裡面的檔案目錄資訊
用法:dpkg -L package-Name
示例:dpkg -L apache2
(24) 搜尋指定包裡面的檔案(模糊查詢)
用法:dpkg -S filename-search-pattern
(25) 顯示包的具體資訊
用法:dpkg -p package-name
示例:dpkg -p cacti
(26) 有些軟體很難解除安裝,而且還阻止了別的軟體應用,就需要使用如下命令
用法: dpkg --force-all --purge packagename
示例: dpkg --force-all --purge xinetd
(27) 常見的問題: 
a. 安裝Ubuntu或者Debian以後,想要知道軟體安裝到具體的路徑,可以使用 dpkg -L 命令來檢視。
b. 如果想暫時刪除程式以後再安裝,可以使用 dpkg -r 命令 

2、apt-get 的使用方法
apt-get 是一條linux命令,適用於deb包管理式的作業系統;主要用於自動從網際網路的軟體倉庫中搜尋、安裝、升級、解除安裝軟體或作業系統。它的基本使用方法如下:
(1) 獲得最近的軟體包的列表,列表中包含一些包的資訊,比如這個包是否更新過
用法: apt-get update 
(2) 將系統升級到新版本
用法: apt-get -u upgrade 或 apt-get dist-upgrade 
說明: 由於包與包之間存在各種依賴關係,upgrade 只是簡單的更新包,不管這些依賴,它不會新增包或是刪除包;而 dist-upgrade 可以根據依賴關係的變化,新增包,刪除包。一般在執行 upgrade 或 dist-upgrade 之前,要執行 update。
(3) 安裝軟體包
用法: apt-get install packagename
示例: apt-get install mdadm 
(4) 解除安裝一個已安裝的軟體包(保留配置文件)
用法: apt-get remove packagename
示例:apt-get remove sqlite3
(5) 解除安裝一個已安裝的軟體包(刪除配置文件)
用法: apt-get remove --purge packagename
示例: apt-get remove --purge samba
(6) 刪除包及其依賴的軟體包
用法: apt-get autoremove packagename
示例: apt-get autoremove openssh-server
(7) 刪除包及其依賴的軟體包和配置檔案,比上面的要刪除的徹底一點
用法: apt-get autoremove --purge packagname
示例: apt-get autoremove --purge xinetd
(8) 清除那些已解除安裝的軟體包的.deb文件
用法: apt-get autoclean
說明: 
a. 通過這種方式,您能夠釋放大量的磁碟空間。
b. 假如您的需求十分迫切,能夠使用apt-get clean以釋放更多空間,apt-get clean 這個命令會將已安裝軟體包裹的.deb文件一併刪除。

3、aptitude 的使用方法
aptitude是Debian GNU/Linux系統中,非常神奇的的軟體包管理器,基於大名鼎鼎的APT機制,整合了dselect和apt-get的所有功能,並提供的更多特性,特別是在依賴關係處理上。   
aptitude與apt-get一樣,是Debian及其衍生系統中功能極其強大的包管理工具。與apt-get不同的是aptitude在處理依賴問題上更佳一些。
舉例來說,aptitude在刪除一個包時,會同時刪除本身所依賴的包,這樣系統中不會殘留無用的包,整個系統更為乾淨。
aptitude常用的使用方法如下:
(1) 更新可用的包列表
用法: aptitude update 
(2) 升級可用的包
用法: aptitude upgrade 
(3) 將系統升級到新的發行版
用法: aptitude dist-upgrade 
(4) 安裝軟體包
用法: aptitude install pkgname
示例: aptitude install php5 php5-gd php5-curl php5-sqlite php5-mysql
(5) 刪除軟體安裝包
用法: aptitude remove pkgname
示例: aptitude remove php5 
(6) 刪除軟體包及其配置檔案 
用法: aptitude purge pkgname
示例: aptitude purge gcc
(7) 搜尋軟體包
用法: aptitude search string 
示例: aptitude search samba
(8) 顯示包的詳細資訊
用法: aptitude show pkgname
示例: aptitude show vsftpd
(9) 刪除下載的包檔案
用法: aptitude clean
(10) 僅刪除過期的包檔案
用法: aptitude autoclean

4、三種工具的區別
(1) dpkg繞過apt包管理資料庫對軟體包進行操作,因此當你用dpkg安裝過的軟體包,然後再使用apt也可以再安裝一遍,系統不知道之前安裝過了,將會覆蓋之前dpkg的安裝。
(2) dpkg主要是用來安裝.deb檔案,但不會解決模組(軟體包)的依賴關係,且不會關心繫統中軟體倉庫內的軟體(包),可以用於安裝本地的deb檔案。
(3) apt會解決和安裝模組的依賴問題,並會諮詢軟體倉庫,但不會安裝本地的deb檔案,apt是建立在dpkg之上的軟體管理工具。
(4) aptitude與apt-get一樣,是Debian及其衍生系統中具有極其強大的包管理工具,與apt-get不同的是aptitude在處理依賴問題上更佳一些。舉例來說,aptitude在刪除一個包時,會同時刪除本身所依賴的包。這樣系統中不會殘留無用的包,整個系統更為乾淨。



相關文章