簡述
最開始的時候,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.html) post
命令 | 做用 |
---|---|
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