15个基于Debian/Ubuntu系统dpkg命令实例

dpkg 命令

dpkgDebian Packager的简写。为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自DebianLinux发行版都会使用 dpkg,例如 UbuntuKnoppix等。

dpkg是Debian系统的后台包管理器,类似RPM。也是Debian包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包。由于ubuntu和Debian乃一脉相承,所以很多命令是不分彼此的。

1. 安装包

要安装 .deb包,使用带有-i选项。例如,要安装.deb包称为nginx_1.16.0-1~trusty_amd64.deb使用以下命令。

  1. [rumenz@local~]# dpkg -i nginx_1.16.0-1~trusty_amd64.deb

2. 列出所有已安装的包

要查看和列出所有已安装的软件包,请使用-l选项以及命令。

  1. [rumenz@local~]# dpkg -l

要查看已安装的特定软件包或不使用选项 -l 连同包名。例如,检查是否apache2包安装与否。

  1. [rumenz@local~]# dpkg -l apache2
  1. Desired=Unknown/Install/Remove/Purge/Hold
  2. | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  3. |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  4. ||/ Name Version Architecture Description
  5. +++-======================================-========================-==============================================
  6. ii apache2 2.2.22-6ubuntu5.1 i386 Apache HTTP Server metapackage

3. 删除一个包

要删除.deb 包,我们必须指定包名 nginx,不是原来的名字 nginx_3.2_i386.deb-r选项用于remove/uninstall

  1. [rumenz@local~]# dpkg -r nginx

也可以使用 p选项代替r这将删除包和配置文件。这 r 选项只会删除包而不是配置文件。

  1. [rumenz@local~]# dpkg -p nginx

4. 查看包的内容

要查看特定包的内容,请使用 -c 选项如图所示。该命令将显示 .deb 长列表格式的包。

  1. [rumenz@local~]# dpkg -c nginx_3.2_i386.deb
  1. drwxr-xr-x root/root 0 2012-12-14 22:54 ./
  2. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/
  3. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/bin/
  4. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/lib/
  5. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/lib/mozilla/
  6. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/lib/mozilla/plugins/
  7. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/lib/nginx/
  8. -rw-r--r-- root/root 3920 2009-09-09 22:51 ./usr/lib/nginx/pubkey.asc
  9. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/
  10. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/man/
  11. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/man/man8/
  12. -rw-r--r-- root/root 716 2012-12-14 22:54 ./usr/share/man/man8/update-nginx.8.gz
  13. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/applications/
  14. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/icons/
  15. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/icons/hicolor/
  16. drwxr-xr-x root/root 0 2012-12-14 22:54 ./usr/share/icons/hicolor/24x24/
  17. ....

5. 检查包是否安装

使用 -s 带有包名的选项,将显示是否安装了deb包。

  1. [rumenz@local~]# dpkg -s nginx

6. 检查安装包的位置

从包名列出要安装到系统的文件的位置。

  1. [rumenz@local~]# dpkg -L nginx
  1. /.
  2. /usr
  3. /usr/bin
  4. /usr/lib
  5. /usr/lib/mozilla
  6. /usr/lib/mozilla/plugins
  7. /usr/lib/nginx
  8. /usr/lib/nginx/pubkey.asc
  9. /usr/share
  10. /usr/share/man
  11. /usr/share/man/man8
  12. /usr/share/man/man8/update-nginx.8.gz
  13. /usr/share/applications
  14. /usr/share/icons
  15. /usr/share/icons/hicolor
  16. ...

7. 从目录安装所有包

递归安装所有匹配模式 * 的常规文件.deb 在指定目录及其所有子目录中找到。这可以与 -R–install 选项。例如,我将安装所有 .deb 来自名为debpackages的目录的包。

  1. [rumenz@local~]# dpkg -R --install debpackages/
  1. (Reading database ... 465836 files and directories currently installed.)
  2. Preparing to replace nginx 1:3.2 (using .../nginx_3.2_i386.deb) ...
  3. Unpacking replacement nginx ...
  4. Setting up nginx (1:3.2) ...
  5. Processing triggers for man-db ...
  6. Processing triggers for bamfdaemon ...
  7. Rebuilding /usr/share/applications/bamf-2.index...
  8. Processing triggers for gnome-menus ...

8. 解压包但不要配置

使用动作 –unpack 将解压包。

  1. [rumenz@local~]# dpkg --unpack nginx_3.2_i386.deb
  1. (Reading database ... 465836 files and directories currently installed.)
  2. Preparing to replace nginx 1:3.2 (using nginx_3.2_i386.deb) ...
  3. Unpacking replacement nginx ...
  4. Processing triggers for man-db ...
  5. Processing triggers for bamfdaemon ...
  6. Rebuilding /usr/share/applications/bamf-2.index...
  7. Processing triggers for gnome-menus ...

9. 重新配置一个解压包

选项 –configure 将重新配置一个已经解压的包。

  1. [rumenz@local~]# dpkg --configure nginx
  1. Setting up nginx (1:3.2) ...

10. 替换可用的包信息

–-update-avail 选项用包文件中的可用信息替换旧信息。

  1. [rumenz@local~]# dpkg –-update-avail package_name

11. 擦除包的现有可用信息

–clear-avaial 将删除有关可用软件包的当前信息。

  1. [rumenz@local~]# dpkg –-clear-avail

12. 忘记卸载和不可用的包

–forget-old-unavail 将自动忘记已卸载和不可用的软件包。

  1. [rumenz@local~]# dpkg --forget-old-unavail

13. 显示 dpkg 许可证

  1. [rumenz@local~]# dpkg --licence

14. 显示 dpkg 版本

–version 参数将显示dpkg版本信息。

  1. [rumenz@local~]# dpkg version
  1. Debian `dpkg' package management program version 1.16.10 (i386).
  2. This is free software; see the GNU General Public License version 2 or
  3. later for copying conditions. There is NO warranty.

15. 获取有关 dpkg 的所有帮助

–help 选项将显示dpkg命令的可用选项列表。

  1. [rumenz@local~]# dpkg help
  1. Usage: dpkg [<option> ...] <command>
  2. Commands:
  3. -i|--install <.deb file name> ... | -R|--recursive <directory> ...
  4. --unpack <.deb file name> ... | -R|--recursive <directory> ...
  5. -A|--record-avail <.deb file name> ... | -R|--recursive <directory> ...
  6. --configure <package> ... | -a|--pending
  7. --triggers-only <package> ... | -a|--pending
  8. -r|--remove <package> ... | -a|--pending
  9. -P|--purge <package> ... | -a|--pending
  10. --get-selections [<pattern> ...] Get list of selections to stdout.
  11. --set-selections Set package selections from stdin.
  12. --clear-selections Deselect every non-essential package.
  13. --update-avail <Packages-file> Replace available packages info.
  14. --merge-avail <Packages-file> Merge with info from file.
  15. --clear-avail Erase existing available info.
  16. --forget-old-unavail Forget uninstalled unavailable pkgs.
  17. -s|--status <package> ... Display package status details.
  18. ...

返回笔记列表
入门小站