Debian 和 Ubuntu 用户常用的 15 个 dpkg 命令

Debian 和 Ubuntu 用户常用的 15 个 dpkg 命令

精选文章moguli202025-05-06 14:52:0410A+A-

dpkg 是 Debian 包管理系统的核心组件,负责直接处理 .deb 格式的软件包文件。与更高层次的工具(如 aptapt-get)不同,dpkg 是一个低级工具,专注于单个包的操作,而不自动解析依赖关系。这使得 dpkg 在需要精细控制或手动干预时尤为有用。

在本文中,我们将涵盖以下 15 个 dpkg 命令,逐步揭示它们的用法和场景:

  1. dpkg -i:安装软件包
  2. dpkg -r:移除软件包
  3. dpkg -P:完全移除软件包(包括配置文件)
  4. dpkg -l:列出已安装的软件包
  5. dpkg -L:列出软件包的文件
  6. dpkg -S:查找文件所属的软件包
  7. dpkg -s:查看软件包的详细信息
  8. dpkg -c:查看 .deb 文件的内容
  9. dpkg -I:显示 .deb 文件的元信息
  10. dpkg --configure:配置未完成配置的软件包
  11. dpkg --purge:清除软件包及其配置文件
  12. dpkg --get-selections:获取软件包的选择状态
  13. dpkg --set-selections:设置软件包的选择状态
  14. dpkg -V:验证软件包的完整性
  15. dpkg --listfiles:列出软件包安装的文件

1. dpkg -i:安装软件包

功能:安装 .deb 格式的软件包文件。

用法dpkg -i <package_file.deb>

详细说明dpkg -i 是最常用的命令之一,用于从本地安装 .deb 文件。与 apt 不同,dpkg 不会自动下载依赖包,因此可能需要手动解决依赖问题。

示例

sudo dpkg -i google-chrome-stable_current_amd64.deb

此命令安装 Google Chrome 的 .deb 包。如果遇到依赖错误,可以使用 sudo apt-get install -f 来修复。

注意事项

  • 确保 .deb 文件与系统架构兼容(例如,64 位系统需要 amd64 包)。
  • 如果依赖问题复杂,建议结合 apt 使用。

2. dpkg -r:移除软件包

功能:卸载指定软件包,但保留其配置文件。

用法sudo dpkg -r <package_name>

详细说明dpkg -r 仅删除软件包的二进制文件和库文件,配置文件会保留以便将来重新安装时复用。这在需要暂时卸载软件但保留配置时非常有用。

示例

sudo dpkg -r vlc

此命令卸载 VLC 媒体播放器,但保留其配置文件。

注意事项

  • 如果需要完全删除配置文件,请使用 dpkg -P
  • 依赖关系可能导致卸载失败,可用 apt-get remove 辅助。

3. dpkg -P:完全移除软件包

功能:卸载软件包并删除其配置文件。

用法sudo dpkg -P <package_name>

详细说明: 与 dpkg -r 不同,dpkg -P 会彻底删除软件包,包括所有配置文件,适合需要完全清理的场景。

示例

sudo dpkg -P vlc

此命令完全移除 VLC 及其配置文件。

注意事项

  • 删除配置文件后,重新安装软件将恢复默认配置。
  • 使用前确认是否需要保留配置。

4. dpkg -l:列出已安装的软件包

功能:显示系统中已安装的软件包列表。

用法dpkg -l [pattern]

详细说明dpkg -l 列出所有已安装的软件包及其状态、版本等信息。如果提供 pattern,可以过滤结果。

示例

dpkg -l | grep apache

此命令列出所有与 Apache 相关的已安装包。

输出解释

  • 第一列:状态(ii 表示已安装,rc 表示已移除但保留配置)。
  • 第二列:包名。
  • 第三列:版本号。
  • 第四列:简短描述。

注意事项

  • 使用 grepawk 可以进一步处理输出。
  • 配合 dpkg-query 可获得更详细的信息。

5. dpkg -L:列出软件包的文件

功能:列出指定软件包安装的所有文件路径。

用法dpkg -L <package_name>

详细说明: 此命令帮助用户了解软件包安装的文件及其位置,常用于调试或验证安装内容。

示例

dpkg -L nginx

此命令显示 Nginx 安装的所有文件路径,如 /usr/sbin/nginx

注意事项

  • 仅列出由软件包直接安装的文件,不包括运行时生成的文件。
  • 如果包未安装,命令会报错。

6. dpkg -S:查找文件所属的软件包

功能:查找某个文件属于哪个已安装的软件包。

用法dpkg -S <file_path>

详细说明: 当你需要知道某个文件的来源时,dpkg -S 是理想工具。它会返回包含该文件的软件包名称。

示例

dpkg -S /usr/bin/vim

此命令显示 /usr/bin/vim 属于 vim 包。

注意事项

  • 文件路径必须是软件包安装的原始文件。
  • 如果文件不属于任何包,命令会返回错误。

7. dpkg -s:查看软件包的详细信息

功能:显示指定软件包的详细信息,包括状态、版本、依赖等。

用法dpkg -s <package_name>

详细说明dpkg -s 提供软件包的元数据,包括安装状态、维护者、描述等,适合快速检查包的状态。

示例

dpkg -s python3

此命令显示 Python3 的详细信息。

注意事项

  • 如果包未安装,命令会返回错误。
  • 输出的依赖信息可用于排查问题。

8. dpkg -c:查看 .deb 文件的内容

功能:列出 .deb 文件中包含的文件列表。

用法dpkg -c <package_file.deb>

详细说明: 在安装 .deb 文件之前,dpkg -c 可以帮助你检查其内容,了解将要安装的文件。

示例

dpkg -c google-chrome-stable_current_amd64.deb

此命令列出 Google Chrome .deb 包中的所有文件。

注意事项

  • 仅适用于未安装的 .deb 文件。
  • 输出格式类似于 tar 的文件列表。

9. dpkg -I:显示 .deb 文件的元信息

功能:显示 .deb 文件的元数据,如版本、依赖和描述。

用法dpkg -I <package_file.deb>

详细说明: 与 dpkg -c 关注文件内容不同,dpkg -I 提供包的控制信息,帮助用户在安装前了解包的详细信息。

示例

dpkg -I google-chrome-stable_current_amd64.deb

此命令显示 Google Chrome 包的元信息。

注意事项

  • 输出的依赖信息可用于预判安装问题。
  • 配合 dpkg -c 可全面了解 .deb 包。

10. dpkg --configure:配置未完成配置的软件包

功能:重新配置未完成配置的软件包。

用法sudo dpkg --configure <package_name>

详细说明: 当软件包安装过程中断(例如,依赖未满足或配置脚本失败),dpkg --configure 可以尝试完成配置。

示例

sudo dpkg --configure mysql-server

此命令重新配置 MySQL 服务器。

注意事项

  • 通常与 apt-get install -f 结合使用。
  • 确保依赖问题已解决。

11. dpkg --purge:清除软件包及其配置文件

功能:等同于 dpkg -P,彻底移除软件包及其配置文件。

用法sudo dpkg --purge <package_name>

详细说明: 此命令与 dpkg -P 功能相同,适合清理不再需要的软件包。

示例

sudo dpkg --purge apache2

此命令完全移除 Apache2 及其配置文件。

注意事项

  • 操作不可逆,谨慎使用。
  • 确保不再需要配置文件。

12. dpkg --get-selections:获取软件包的选择状态

功能:列出系统中所有软件包的选择状态。

用法dpkg --get-selections [pattern]

详细说明: 此命令显示软件包的安装状态(installholddeinstall 等),常用于备份系统配置。

示例

dpkg --get-selections > selections.txt

此命令将选择状态保存到文件。

注意事项

  • 可与 dpkg --set-selections 配合恢复配置。
  • 输出的状态信息对系统迁移有用。

13. dpkg --set-selections:设置软件包的选择状态

功能:从文件中恢复软件包的选择状态。

用法dpkg --set-selections

详细说明: 与 dpkg --get-selections 配合使用,可在另一系统上还原软件包状态。

示例

dpkg --set-selections < selections.txt
sudo apt-get dselect-upgrade

此命令从文件恢复选择状态并安装。

注意事项

  • 确保文件格式正确。
  • 需要 apt-get 完成实际安装。

14. dpkg -V:验证软件包的完整性

功能:检查已安装软件包文件的完整性。

用法dpkg -V [package_name]

详细说明dpkg -V 比较文件的校验和,检测是否被修改或损坏,适合安全审计。

示例

dpkg -V nginx

此命令验证 Nginx 文件的完整性。

注意事项

  • 修改过的配置文件会报告差异。
  • 仅验证软件包安装的文件。

15. dpkg --listfiles:列出软件包安装的文件

功能:等同于 dpkg -L,列出软件包安装的文件。

用法dpkg --listfiles <package_name>

详细说明: 此命令与 dpkg -L 功能相同,列出软件包安装的所有文件路径。

示例

dpkg --listfiles python3

此命令显示 Python3 安装的文件。

注意事项

  • dpkg -L 无显著差异,依习惯选择使用。
  • 仅适用于已安装的包。

实用技巧与常见问题

  1. 处理依赖问题

如果 dpkg -i 报告依赖错误,运行 sudo apt-get install -f 自动修复。

  1. 清理残留包

使用 dpkg -l | grep ^rc 查找已卸载但保留配置的包,然后用 dpkg --purge 清理。

  1. 批量操作

结合 dpkg 和 shell 脚本可实现批量安装或查询,例如:

for deb in *.deb; do sudo dpkg -i "$deb"; done
  1. 日志查看

检查 /var/log/dpkg.log 获取 dpkg 操作的历史记录。

  1. 与 apt 结合

dpkg 擅长底层操作,apt 擅长依赖管理和仓库操作,合理结合两者可提升效率。

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2