必威电竞|足球世界杯竞猜平台

dpkg
來源:互聯網

“dpkg”是“Debian Packager”的簡寫。為“Debian”專門開發的套件管理系統,方便軟件的安裝、更新及移除。所有源自“Debian”的“Linux”發行版都使用“dpkg”,例如“Ubuntu”、“Knoppix”等。

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

dpkg本身是一個底層的工具。上層的工具,如APT,被用于從遠程獲取軟件包以及處理復雜的軟件包關系。“dpkg”是“Debian Package”的簡寫。

用法

dpkg的用法

1)安裝軟件

命令行:dpkg-i<.deb file name>

示例:dpkg-iavg71flm_r28-1_i386.deb

2)安裝一個目錄下面所有的軟件包

命令行:dpkg-R

示例:dpkg-R/usr/local/src

3)釋放軟件包,但是不進行配置

命令行:dpkg–-unpack package_file 如果和-R一起使用,參數可以是一個目錄

示例:dpkg–-unpack avg71flm_r28-1_i386.deb

4)重新配置和釋放軟件包

命令行:dpkg–configure package_file

如果和-a一起使用,將配置所有沒有配置的軟件包

示例:dpkg–configure avg71flm_r28-1_i386.deb

5)刪除軟件包(保留其配置信息)

命令行:dpkg-r

示例:dpkg-r avg71flm

6)替代軟件包的信息

命令行:dpkg–update-avail

7)合并軟件包信息

dpkg–merge-avail

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 directory [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

解析

dpkg使用解析

APT install

下載 以及所有依賴的包裹,同時進行包裹的安裝或升級。如果某個包裹被設置了 hold (停止標志),就會被擱在一邊(即不會被升級).更多 hold 細節請看下面.

apt-get remove [--purge]

移除 以及任何倚賴這個包裹的其它包裹.

--purge 指明這個包裹應該被完全清除 (purged) ,更多信息請看 dpkg -P .

APT update

升級來自Debian鏡像的包裹列表,如果你想安裝當天的任何軟件,至少每天運行一次,而且每次修改了

/etc/apt/sources.list 后,必須執行.

apt-get upgrade [-u]

升級所有已經安裝的包裹為最新可用版本。不會安裝新的或移除老的包裹。如果一個包改變了倚賴關系而需要安裝一個新的包裹,那么它將不會被升級,而是標志為 hold .apt-get update 不會升級被標志為 hold 的包裹 (這個也就是hold的意思).請看下文如何手動設置包裹為 hold .我建議同時使用 '-u' 選項,因為這樣你就能看到哪些包裹將會被升級.

APT dist-upgrade [-u]

和 apt-get upgrade 類似,除了 dist-upgrade 會安裝和移除包裹來滿足倚賴關系。因此具有一定的危險性.

apt-cache search

搜索滿足的包裹和描述.

apt-cache show

顯示的完整的描述.

apt-cache showpkg

顯示許多細節,以及和其它包裹的關系.

dselect

console-apt

aptitude

gnome-apt

APT 的幾個圖形前端(其中一些在使用前得先安裝).這里 dselect 無疑是最強大的,也是最古老,最難駕馭.

普通Dpkg用法

dpkg-i

安裝一個Debian包裹文件;如你手動下載的文件.

dpkg-c

列出的內容.

dpkg-I

中提取包裹信息.

dpkg-r

移除一個已安裝的包裹.

dpkg-P

完全清除一個已安裝的包裹。和remove不同的是,remove只是刪掉數據和可執行文件,purge另外還刪除所有的配制文件.

dpkg-L

列出安裝的所有文件清單。同時請看dpkg-c來檢查一個.deb文件的內容.

dpkg-s

顯示已安裝包裹的信息。同時請看apt-cache顯示Debian存檔中的包裹信息,以及dpkg-I來顯示從一個.deb文件中提取的包裹信息.

dpkg-reconfigure

重新配制一個已經安裝的包裹,如果它使用的是 debconf (debconf 為包裹安裝提供了一個統一的配制界面).你能夠重新配制 debconf 它本身,如你想改變它的前端或提問的優先權。例如,重新配制 debconf ,使用一個 dialog 前端,簡單運行:

dpkg-reconfigure --frontend=dialog debconf (如果你安裝時選錯了,這里可以改回來喲)

echo " hold" | dpkg --set-selections

設置 的狀態為 hold (命令行方式)

dpkg --get-selections ""

取的 的當前狀態 (命令行方式)

支持通配符,如:

Debian:~# dpkg --get-selections *wine*

libwine hold

libwine-alsa hold

libwine-arts hold

libwine-dev hold

libwine-nas hold

libwine-print hold

libwine-twain hold

wine hold

wine+ hold

wine-doc hold

wine-utils hold

例如:

大家現在用的都是 gaim-0.58 + QQ-plugin,為了防止 gaim 被升級,我們可以采用如下方法:

方法一:

Debian:~# echo "gaim hold" | dpkg --set-selections

然后用下面命令檢查一下:

Debian:~# dpkg --get-selections "gaim"

gaim hold

現在的狀態標志是 hold,就不能被升級了.

如果想恢復怎么辦呢?

Debian:~# echo "gaim install" | dpkg --set-selections

Debian:~# dpkg --get-selections "gaim"

gaim install

這時狀態標志又被重置為 install,可以繼續升級了.

同志們會問,這些狀態標志都寫在哪個文件中呢?

在 /var/lib/dpkg/status 里,你也可以通過修改這個文件實現 hold.

有時你會發現有的軟件狀態標志是 purge,不要奇怪.

如:事先已經安裝了 AMSN, 然后把它卸了.

APT remove --purge amsn

那么狀態標志就從 install 變成 purge.

方法二:

在/etc/apt 下手動建一個 preferences 文件

內容:

Package: gaim

松屬: version 0.58*

保存

dpkg -S

在包裹數據庫中查找 ,并告訴你哪個包裹包含了這個文件.(注:查找的是事先已經安裝的包裹)

從源碼建立deb packages

APT source [-b]

下載一個源碼的包并解開。

你必須在你的/etc/apt/sources.list文件里寫入一條 deb-src 的記錄才能完成這項工作。

如果你輸入了一個-b參數,并且是以root的身份,deb包會被自動的創建。

apt-get build-dep

自動下載并安裝通過源碼創建 時需要的包。

只有apt 0.5以上版本才支持這個功能。

現在woody和以上版本包含了這個功能。

如果你使有一個舊版本的apt,查找依賴性最簡單的方法是查看源碼包中 debian/control 這個文件,

注意這個路徑是相對的,是包內的路徑。

普通的用法,結合 APT source -b,例子 (as root):

apt-get build-dep

apt-get source -b

會下載源碼包,建立依賴性,然后嘗試編譯源碼。

dpkg-source -x

如果你手工下載了一個程序的源碼包,其中包含了幾個類似 .orig.tar.gz , .dsc ,

以及 .diff.gz 之類的文件,

那么你就可以對 .dsc 文件使用這個命令來 unpack 源碼包。

dpkg-buildpackage

從 Debian 源碼樹建立一個deb包。你必須在source tree的主目錄才能生效。例如:

dpkg-buildpackage -rfakeroot -uc -b

這里 '-rfakeroot' 指定命令使用 fakeroot 程序來模仿 root 權限 (來實現所有者(ownership)目的),

'-uc' 表示 "Don't cryptographically sign the changelog", '-b' 代表只建立二進制包.

debuild

一個快速打包腳本類似 dpkg-buildpackage ,能自動的識別是否使用 fakeroot,

同時為你運行 lintian 和 gpg

修正倚賴關系

dpkg --configure --pending

如果dpkg在APT install upgrade dist-uptradeing 的時候出錯退出,

嘗試使用此命令來配置已經unpack的包。

然后再用 apt-get install ,upgrade, or dist-upgrade -f ,

然后再用 apt-get install, upgrade, or dist-upgrade.

可能會重復多次,這樣通常可以解決大多數的依賴性問題。

(同時,如果提示由于某種原因需要某個特定的包裹,你可以常識安裝或卸載這個包)

APT install -f

apt-get upgrade -f

apt-get dist-upgrade -f

嘗試修正上述過程中出現依賴性關系

注意 apt-get install -f 不需要 作為參數。

參考資料 >

dpkg的用法.CSDN博客.2012-11-08

apt和dpkg.CSDN博客.2012-11-08

生活家百科家居網