用 dpkg 命令在 Debian 系的 Linux系统中管理软件包

简介:

dpkg 意即 Debian 包管理器Debian PacKaGe manager。dpkg 是一个可以安装、构建、删除及管理 Debian 软件包的命令行工具。dpkg 将 Aptitude(首选而更用户友好)作为执行所有操作的前端界面。

其它的一些工具如 dpkg-deb 和 dpkg-query 等也使用 dpkg 作为执行某些操作的前端。

现在大多数系统管理员使用 Apt、Apt-Get 及 Aptitude 等工具,不用费心就可以轻松地管理软件。

尽管如此,必要的时候还是需要用 dpkg 来安装某些软件。其它的一些在 Linux 系统上广泛使用的包管理工具还有 yumdnfapt-getrpmZypper、pacman、urpmi 等等。

现在,我要在装有 Ubuntu 15.10 的机器上用一些实例讲解最常用的 dpkg 命令。

1) dpkg 常见命令的语法及 dpkg 文件位置

下面是 dpkg 常见命令的语法及 dpkg 相关文件的位置,如果想深入了解,这些对你肯定大有益处。

 
  1. ### dpkg 命令的语法
  2. $ dpkg -[command] [.deb package name]
  3. $ dpkg -[command] [package name]
  4. ### dpkg 相关文件的位置
  5. $ /var/lib/dpkg
  6. ### 这个文件包含了被 dpkg 命令(install、remove 等)所修改的包的信息
  7. $ /var/lib/dpkg/status
  8. ### 这个文件包含了可用包的列表
  9. $ /var/lib/dpkg/status

2) 安装/升级软件

在基于 Debian 的系统里,比如 Debian、Mint、Ubuntu 和 elementryOS,用以下命令来安装/升级 .deb 软件包。这里我要用 atom-amd64.deb 文件安装 Atom。要是已经安装了 Atom,就会升级它。要么就会安装一个新的 Atom。

 
  1. ### 安装或升级 dpkg 软件包
  2. $ sudo dpkg -i atom-amd64.deb
  3. Selecting previously unselected package atom.
  4. (Reading database ... 426102 files and directories currently installed.)
  5. Preparing to unpack atom-amd64.deb ...
  6. Unpacking atom (1.5.3) over (1.5.3) ...
  7. Setting up atom (1.5.3) ...
  8. Processing triggers for gnome-menus (3.13.3-6ubuntu1) ...
  9. Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ...
  10. Rebuilding /usr/share/applications/bamf-2.index...
  11. Processing triggers for desktop-file-utils (0.22-1ubuntu3) ...
  12. Processing triggers for mime-support (3.58ubuntu1) ...

3) 从文件夹里安装软件

在基于 Debian 的系统里,用下列命令从目录中逐个安装软件。这会安装/opt/software 目录下的所有以 .deb 为后缀的软件。

 
  1. $ sudo dpkg -iR /opt/software
  2. Selecting previously unselected package atom.
  3. (Reading database ... 423303 files and directories currently installed.)
  4. Preparing to unpack /opt/software/atom-amd64.deb ...
  5. Unpacking atom (1.5.3) ...
  6. Setting up atom (1.5.3) ...
  7. Processing triggers for gnome-menus (3.13.3-6ubuntu1) ...
  8. Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ...
  9. Rebuilding /usr/share/applications/bamf-2.index...
  10. Processing triggers for desktop-file-utils (0.22-1ubuntu3) ...
  11. Processing triggers for mime-support (3.58ubuntu1) ...

4) 显示已安装软件列表

以下命令可以列出 Debian 系的系统中所有已安装的软件,同时会显示软件版本和描述信息。

 
  1. $ dpkg -l
  2. Desired=Unknown/Install/Remove/Purge/Hold
  3. | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  4. |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  5. ||/ Name Version Architecture Description
  6. +++-===========================-==================================-============-================================================================
  7. ii account-plugin-aim 3.12.10-0ubuntu2 amd64 Messaging account plugin for AIM
  8. ii account-plugin-facebook 0.12+15.10.20150723-0ubuntu1 all GNOME Control Center account plugin for single signon - facebook
  9. ii account-plugin-flickr 0.12+15.10.20150723-0ubuntu1 all GNOME Control Center account plugin for single signon - flickr
  10. ii account-plugin-google 0.12+15.10.20150723-0ubuntu1 all GNOME Control Center account plugin for single signon
  11. ii account-plugin-jabber 3.12.10-0ubuntu2 amd64 Messaging account plugin for Jabber/XMPP
  12. ii account-plugin-salut 3.12.10-0ubuntu2 amd64 Messaging account plugin for Local XMPP (Salut)
  13. .
  14. .

5) 查看指定的已安装软件

用以下命令列出指定的一个已安装软件,同时会显示软件版本和描述信息。

 
  1. $ dpkg -l atom
  2. Desired=Unknown/Install/Remove/Purge/Hold
  3. | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  4. |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  5. ||/ Name Version Architecture Description
  6. +++-==========-=========-===================-============================================
  7. ii atom 1.5.3 amd64 A hackable text editor for the 21st Century.

6) 查看软件安装目录

以下命令可以在基于 Debian 的系统上查看软件的安装路径。

 
  1. $ dpkg -L atom
  2. /.
  3. /usr
  4. /usr/bin
  5. /usr/bin/atom
  6. /usr/share
  7. /usr/share/lintian
  8. /usr/share/lintian/overrides
  9. /usr/share/lintian/overrides/atom
  10. /usr/share/pixmaps
  11. /usr/share/pixmaps/atom.png
  12. /usr/share/doc

7) 查看 deb 包内容

下列命令可以查看 deb 包内容。它会显示 .deb 包中的一系列文件。

 
  1. $ dpkg -c atom-amd64.deb
  2. drwxr-xr-x root/root 0 2016-02-13 02:13 ./
  3. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/
  4. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/bin/
  5. -rwxr-xr-x root/root 3067 2016-02-13 02:13 ./usr/bin/atom
  6. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/
  7. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/lintian/
  8. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/lintian/overrides/
  9. -rw-r--r-- root/root 299 2016-02-13 02:13 ./usr/share/lintian/overrides/atom
  10. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/pixmaps/
  11. -rw-r--r-- root/root 643183 2016-02-13 02:13 ./usr/share/pixmaps/atom.png
  12. drwxr-xr-x root/root 0 2016-02-13 02:13 ./usr/share/doc/
  13. .
  14. .

8) 显示软件的详细信息

以下命令可以显示软件的详细信息,如软件名、软件类别、版本、维护者、软件架构、依赖的软件、软件描述等等。

 
  1. $ dpkg -s atom
  2. Package: atom
  3. Status: install ok installed
  4. Priority: optional
  5. Section: devel
  6. Installed-Size: 213496
  7. Maintainer: GitHub <atom@github.com>Architecture: amd64
  8. Version: 1.5.3
  9. Depends: git, gconf2, gconf-service, libgtk2.0-0, libudev0 | libudev1, libgcrypt11 | libgcrypt20, libnotify4, libxtst6, libnss3, python, gvfs-bin, xdg-utils, libcap2
  10. Recommends: lsb-release
  11. Suggests: libgnome-keyring0, gir1.2-gnomekeyring-1.0
  12. Description: A hackable text editor for the 21st Century.
  13. Atom is a free and open source text editor that is modern, approachable, and hackable to the core.</atom@github.com>

9) 查看文件属于哪个软件

用以下命令来查看文件属于哪个软件。

 
  1. $ dpkg -S /usr/bin/atom
  2. atom: /usr/bin/atom

10) 移除/删除软件

以下命令可以用来移除/删除一个已经安装的软件,但不删除配置文件。

 
  1. $ sudo dpkg -r atom
  2. (Reading database ... 426404 files and directories currently installed.)
  3. Removing atom (1.5.3) ...
  4. Processing triggers for gnome-menus (3.13.3-6ubuntu1) ...
  5. Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ...
  6. Rebuilding /usr/share/applications/bamf-2.index...
  7. Processing triggers for desktop-file-utils (0.22-1ubuntu3) ...
  8. Processing triggers for mime-support (3.58ubuntu1) ...

11) 清除软件

以下命令可以用来移除/删除包括配置文件在内的所有文件。

 
  1. $ sudo dpkg -P atom
  2. (Reading database ... 426404 files and directories currently installed.)
  3. Removing atom (1.5.3) ...
  4. Processing triggers for gnome-menus (3.13.3-6ubuntu1) ...
  5. Processing triggers for bamfdaemon (0.5.2~bzr0+15.10.20150627.1-0ubuntu1) ...
  6. Rebuilding /usr/share/applications/bamf-2.index...
  7. Processing triggers for desktop-file-utils (0.22-1ubuntu3) ...
  8. Processing triggers for mime-support (3.58ubuntu1) ...

12) 了解更多

用以下命令来查看更多关于 dpkg 的信息。

 
  1. $ dpkg -help
  2. $ man dpkg

开始体验 dpkg 吧。

原文发布时间为:2017-11-12

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
2月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
423 1
二、Linux文本处理与文件操作核心命令
|
2月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
291 137
|
2月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
679 57
|
1月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
405 2
|
2月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
274 0
Linux内存问题排查命令详解
|
3月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
387 78
|
1月前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
714 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
1月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
623 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
5月前
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
1525 23
|
5月前
|
安全 应用服务中间件 Linux
Debian操作系统如何安装Nginx并开启HTTP2
本指南介绍了在Linux系统中通过源码编译安装Nginx的完整流程。首先更新软件包列表并安装必要的编译依赖,接着下载指定版本的Nginx源码包(如1.24.0),检查文件完整性后解压。随后通过配置脚本指定安装路径与模块(如HTTP SSL模块),执行编译和安装命令。最后创建软链接以便全局调用,并提供启动、停止及重载Nginx的命令,同时提醒注意安全组设置以确保正常访问。