天天看點

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

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在删除一個包時,會同時删除本身所依賴的包。這樣系統中不會殘留無用的包,整個系統更為幹淨。

繼續閱讀