dpkg 意即 Debian 套件管理器(Debian PacKaGe manager)。 dpkg 是一個可以安裝、建置、刪除及管理 Debian 軟體包的命令列工具。 dpkg 將 Aptitude(首選而更用戶友好)作為執行所有操作的前端介面。
其它的一些工具如 dpkg-deb 和 dpkg-query 等也使用 dpkg 作為執行某些操作的前端。
現在大多數系統管理員使用 Apt、Apt-Get 及 Aptitude 等工具,不用費心就可以輕鬆地管理軟體。
儘管如此,必要的時候還是需要用 dpkg 來安裝某些軟體。其它的一些在 Linux 系統上廣泛使用的套件管理工具還有 yum、dnf、apt-get、rpm、Zypper、pacman、urpmi 等等。
現在,我要在裝有 Ubuntu 15.10 的機器上用一些實例來講解最常用的 dpkg 指令。
1) dpkg 常見指令的語法及 dpkg 檔案位置
下面是 dpkg 常見指令的語法及 dpkg 相關檔案的位置,如果想深入了解,這些對你肯定大有益處。
### dpkg 命令的语法 $ dpkg -[command] [.deb package name] $ dpkg -[command] [package name] ### dpkg 相关文件的位置 $ /var/lib/dpkg ### 这个文件包含了被 dpkg 命令(install、remove 等)所修改的包的信息 $ /var/lib/dpkg/status ### 这个文件包含了可用包的列表 $ /var/lib/dpkg/status
2) 安裝/升級軟體
在基於 Debian 的系統裡,例如 Debian、Mint、Ubuntu 和 elementryOS,用以下命令來安裝/升級 .deb 軟體包。這裡我要用 atom-amd64.deb 檔案安裝 Atom。要是已經安裝了 Atom,就會升級它。要么就會安裝一個新的 Atom。
### 安装或升级 dpkg 软件包 $ sudo dpkg -i atom-amd64.deb Selecting previously unselected package atom. (Reading database ... 426102 files and directories currently installed.) Preparing to unpack atom-amd64.deb ... Unpacking atom (1.5.3) over (1.5.3) ... Setting up atom (1.5.3) ... Processing triggers for gnome-menus (3.13.3-6ubuntu1) ... Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for desktop-file-utils (0.22-1ubuntu3) ... Processing triggers for mime-support (3.58ubuntu1) ...
3) 從資料夾安裝軟體
在基於 Debian 的系統裡,用下列指令從目錄中逐一安裝軟體。這會安裝 /opt/software 目錄下的所有以 .deb 為後綴的軟體。
$ sudo dpkg -iR /opt/software Selecting previously unselected package atom. (Reading database ... 423303 files and directories currently installed.) Preparing to unpack /opt/software/atom-amd64.deb ... Unpacking atom (1.5.3) ... Setting up atom (1.5.3) ... Processing triggers for gnome-menus (3.13.3-6ubuntu1) ... Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for desktop-file-utils (0.22-1ubuntu3) ... Processing triggers for mime-support (3.58ubuntu1) ...
4) 顯示已安裝軟體清單
以下命令可以列出 Debian 系的系統中所有已安裝的軟體,同時會顯示軟體版本和描述資訊。
$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===========================-==================================-============-================================================================ ii account-plugin-aim 3.12.10-0ubuntu2 amd64 Messaging account plugin for AIM ii account-plugin-facebook 0.12+15.10.20150723-0ubuntu1 all GNOME Control Center account plugin for single signon - facebook ii account-plugin-flickr 0.12+15.10.20150723-0ubuntu1 all GNOME Control Center account plugin for single signon - flickr ii account-plugin-google 0.12+15.10.20150723-0ubuntu1 all GNOME Control Center account plugin for single signon ii account-plugin-jabber 3.12.10-0ubuntu2 amd64 Messaging account plugin for Jabber/XMPP ii account-plugin-salut 3.12.10-0ubuntu2 amd64 Messaging account plugin for Local XMPP (Salut) . .
5) 查看指定的已安裝軟體
用以下命令列出指定的一個已安裝軟體,同時會顯示軟體版本和描述資訊。
$ dpkg -l atom Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==========-=========-===================-============================================ ii atom 1.5.3 amd64 A hackable text editor for the 21st Century.
6) 查看軟體安裝目錄
以下命令可以在基於 Debian 的系統上查看軟體的安裝路徑。
$ dpkg -L atom /. /usr /usr/bin /usr/bin/atom /usr/share /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/atom /usr/share/pixmaps /usr/share/pixmaps/atom.png /usr/share/doc
7) 查看 deb 套件內容
下列指令可以查看 deb 套件內容。它會顯示 .deb 套件中的一系列檔案。
$ dpkg -c atom-amd64.deb drwxr-xr-x root/root 0 2016-02-13 02:13 ./ drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/ drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/bin/ -rwxr-xr-x root/root 3067 2016-02-13 02:13 ./usr/bin/atom drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/ drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/lintian/ drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/lintian/overrides/ -rw-r--r-- root/root 299 2016-02-13 02:13 ./usr/share/lintian/overrides/atom drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/pixmaps/ -rw-r--r-- root/root 643183 2016-02-13 02:13 ./usr/share/pixmaps/atom.png drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/doc/ . .
8) 顯示軟體的詳細資訊
以下命令可以顯示軟體的詳細信息,如軟體名稱、軟體類別、版本、維護者、軟體架構、依賴的軟體、軟體描述等等。
$ dpkg -s atom Package: atom Status: install ok installed Priority: optional Section: devel Installed-Size: 213496 Maintainer: GitHub <atom@github.com>Architecture: amd64 Version: 1.5.3 Depends: git, gconf2, gconf-service, libgtk2.0-0, libudev0 | libudev1, libgcrypt11 | libgcrypt20, libnotify4, libxtst6, libnss3, python, gvfs-bin, xdg-utils, libcap2 Recommends: lsb-release Suggests: libgnome-keyring0, gir1.2-gnomekeyring-1.0 Description: A hackable text editor for the 21st Century. Atom is a free and open source text editor that is modern, approachable, and hackable to the core.</atom@github.com>
9) 查看檔案屬於哪個軟體
用以下指令來檢視檔案屬於哪個軟體。
$ dpkg -S /usr/bin/atom atom: /usr/bin/atom
10) 移除/刪除軟體
以下命令可以用來移除/刪除一個已經安裝的軟體,但不刪除設定檔。
$ sudo dpkg -r atom (Reading database ... 426404 files and directories currently installed.) Removing atom (1.5.3) ... Processing triggers for gnome-menus (3.13.3-6ubuntu1) ... Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for desktop-file-utils (0.22-1ubuntu3) ... Processing triggers for mime-support (3.58ubuntu1) ...
11) 清除軟體
以下命令可以用來移除/刪除包括設定檔在內的所有檔案。
$ sudo dpkg -P atom (Reading database ... 426404 files and directories currently installed.) Removing atom (1.5.3) ... Processing triggers for gnome-menus (3.13.3-6ubuntu1) ... Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for desktop-file-utils (0.22-1ubuntu3) ... Processing triggers for mime-support (3.58ubuntu1) ...
12) 了解更多
用以下指令來查看更多關於 dpkg 的資訊。
$ dpkg -help 或 $ man dpkg
開始體驗 dpkg 吧。