[轉]Ubuntu上的包管理:dpkg,apt和aptitude

 

一直以來對於ubuntu的包管理的概念就是apt-get,偶爾手動裝個包就是dpkg -i,如今以爲是要系統地瞭解一下這幾個包管理的命令。html

 

原文轉自: http://zhouliang.pro/2011/10/23/ubuntu-apt-aptitude-dpkg/前端

 

Ubuntu上的包管理:dpkg,apt和aptitude

簡述

最開始的時候,Linux上的軟件以源代碼的方式發佈,用戶下載源代碼包(一般打包爲.tar.gz),而後自行編譯。python

dpkg是Debian軟件包管理器的基礎,它被伊恩·默多克建立於1993年。dpkg與RPM十分類似,一樣被用於安裝、卸載和供給和.deb軟件包相關的信息。linux

dpkg自己是一個底層的工具,自己並不能從遠程包倉庫下載包以及處理包的依賴的關係,基於dpkg的上層工具,如APT,則用於從遠程獲取軟件包以及處理複雜的軟件包關係ubuntu

 

APT全稱Advanced Packaging Tool,能夠自動下載,配置,安裝二進制或者源代碼格式的軟件包,所以簡化了Unix系統上管理軟件的過程。如今Debian和其衍生髮行版(如Ubuntu)中都包含了APT。vim

 

APT最先是基於dpkg的開發的,只用來處理deb格式的軟件包。如今通過APT-RPM組織修改,APT已經能夠安裝在支持RPM的系統管理RPM包。python2.7

而aptitude是一個APT的文本界面客戶端,如今也逐漸加入了GUI的界面,詳見http://linuxtoy.org/archives/gtk-gui-for-aptitude.htmlide

Synaptic是Ubuntu中自帶的APT的GUI客戶端,也就是傳說中的新立得。工具

dpkg命令

(來自:http://linuxtoy.org/archives/dpkg_reference.htmlpost

命令 做用
dpkg -i package.deb 安裝包
dpkg -r package 刪除包
dpkg -P package 刪除包(包括配置文件)
dpkg -L package 列出與該包關聯的文件
dpkg -l package 顯示該包的版本
dpkg --unpack package.deb 解開 deb 包的內容
dpkg -S keyword 搜索所屬的包內容
dpkg -l 列出當前已安裝的包
dpkg -c package.deb 列出 deb 包的內容
dpkg --configure package 配置包

注意:更多選項可經過 dpkg -h 查詢,有些指令須要超級用戶權限才能執行

APT命令

(來自:http://linuxtoy.org/archives/apt_reference.html)

命令 做用
apt-cache search package 搜索包
apt-cache show package 獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package 安裝包
sudo apt-get install package --reinstall 從新安裝包
sudo apt-get -f install 強制安裝
sudo apt-get remove package 刪除包
sudo apt-get remove package --purge 刪除包,包括刪除配置文件等
sudo apt-get autoremove 自動刪除不須要的包
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-get dselect-upgrade 使用 dselect 升級
apt-cache depends package 瞭解使用依賴
apt-cache rdepends package 瞭解某個具體的依賴
sudo apt-get build-dep package 安裝相關的編譯環境
apt-get source package 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean 清理下載文件的存檔
sudo apt-get check 檢查是否有損壞的依賴

備註:package 爲軟件包名稱。

aptitude命令

(來自http://linuxtoy.org/archives/aptitude_quick_reference.html) aptitude是基於APT的又一個包管理的前端,aptitude彷佛在處理依賴問題上更佳一些。聽說aptitude 另外用一份數據量很小的擴展標記來實現所謂更佳的管理,我沒有發現有什麼比apt命令更加牛逼的功能,不過看起來命令比apt要簡潔。

命令 做用
aptitude update 更新可用的包列表
aptitude upgrade 升級可用的包
aptitude dist-upgrade 將系統升級到新的發行版
aptitude install pkgname 安裝包
aptitude remove pkgname 刪除包
aptitude purge pkgname 刪除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 顯示包的詳細信息
aptitude clean 刪除下載的包文件
aptitude autoclean 僅刪除過時的包文件

固然aptitude也是text-based,也就是命令行模式的

 

Synaptic

因爲synaptic是GUI界面的,沒啥命令好說的,其實這個在Ubuntu裏面也挺少用到的,更多的仍是經過apt-get命令就能夠搞定。

 

 

須要熟記的:

       1). 查詢vim是否安裝:

fbw@fbw-kylin:~$ dpkg -l | grep vim
ii  vim                                         2:7.3.429-2ubuntu2.1                        Vi IMproved - enhanced vi editor
ii  vim-common                                  2:7.3.429-2ubuntu2.1                        Vi IMproved - Common files
ii  vim-runtime                                 2:7.3.429-2ubuntu2.1                        Vi IMproved - Runtime files
ii  vim-tiny                                    2:7.3.429-2ubuntu2.1                        Vi IMproved - enhanced vi editor - compact version

 

2). 查看python-six包的詳情:

fbw@fbw-kylin:/var/cache/apt/archives$ dpkg -s python-six
Package: python-six
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 53
Maintainer: Colin Watson <cjwatson@debian.org>
Architecture: all
Source: six
Version: 1.1.0-2
Depends: python2.7, python (>= 2.7.1-0ubuntu2), python (<< 2.8)
Description: Python 2 and 3 compatibility library (Python 2 interface)
 Six is a Python 2 and 3 compatibility library. It provides utility
 functions for smoothing over the differences between the Python versions
 with the goal of writing Python code that is compatible on both Python
 versions.
 .
 This package provides Six on the Python 2 module path. It is complemented
 by python3-six.

 

PS:deb包對應的文件名爲:"包名"_"Version"_"Architecture".deb

3). apt-cache 查看包的詳情:

 fbw@fbw-kylin:/var/cache/apt/archives$ apt-cache show python-six
Package: python-six
Priority: optional
Section: universe/python
Installed-Size: 53
Maintainer: Colin Watson <cjwatson@debian.org>
Architecture: all
Source: six
Version: 1.1.0-2
Depends: python2.7, python (>= 2.7.1-0ubuntu2), python (<< 2.8)
Filename: pool/universe/s/six/python-six_1.1.0-2_all.deb
Size: 6062
MD5sum: d934e809c17d748f15c1d989862bd7cd
SHA1: 1ccffda8d00bb874a8163410e39c3f499a931b87
SHA256: 12e087fb95a7f11185ac04b3cf49aa880d353d62b5dd8d043edf33ded265940e
Description-en: Python 2 and 3 compatibility library (Python 2 interface)
 Six is a Python 2 and 3 compatibility library. It provides utility
 functions for smoothing over the differences between the Python versions
 with the goal of writing Python code that is compatible on both Python
 versions.
 .
 This package provides Six on the Python 2 module path. It is complemented
 by python3-six.
Homepage: http://packages.python.org/six/
Description-md5: cfd46d2babaaa95d96b4e170cd5bf348
Bugs: https://bugs.launchpad.net/ubuntu/+filebugOrigin: Ubuntu

相關文章
相關標籤/搜索