Linux命令:dpkg

dpkg 命令

基本介绍

dpkg (Debian Package) 是 Debian 系 Linux 发行版(如 Debian、Ubuntu)的底层包管理工具。它负责安装、删除、配置和管理 .deb 格式的软件包。dpkg 是 APT(Advanced Package Tool)的底层支持工具,APT 提供了更高级的依赖管理和网络下载功能。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

dpkg [选项] <命令> [包名/文件名]

常用命令

安装命令

命令说明
dpkg -i <package.deb>安装指定的 deb 包
dpkg --install <package.deb>安装指定的 deb 包
dpkg --unpack <package.deb>只解压包,不配置
dpkg --configure <package>配置已解压的包

删除命令

命令说明
dpkg -r <package>删除包(保留配置文件)
dpkg --remove <package>删除包(保留配置文件)
dpkg -P <package>彻底删除包(包括配置文件)
dpkg --purge <package>彻底删除包(包括配置文件)

查询命令

命令说明
dpkg -l列出所有已安装的包
dpkg --list列出所有已安装的包
dpkg -s <package>显示包的状态信息
dpkg --status <package>显示包的状态信息
dpkg -L <package>列出包安装的所有文件
dpkg --listfiles <package>列出包安装的所有文件
dpkg -S <file>查找文件所属的包
dpkg --search <file>查找文件所属的包
dpkg -p <package>显示包的详细信息
dpkg --print-avail <package>显示包的详细信息

其他命令

命令说明
dpkg --audit检查系统中损坏的包
dpkg --clear-avail清除可用包的缓存信息
dpkg --get-selections列出所有包的选择状态
dpkg --set-selections设置包的选择状态

常用选项

选项说明
-i安装包
-r删除包(保留配置)
-P彻底删除包(包括配置)
-l列出已安装的包
-s显示包状态
-L列出包中的文件
-S搜索文件所属包
-p显示包详细信息
--force-*强制执行某些操作
--no-triggers不执行触发器
--unpack只解压不配置
--configure配置已解压的包

使用示例

1. 安装 deb 包

dpkg -i nginx_1.18.0-0ubuntu1_all.deb

2. 安装多个 deb 包

dpkg -i package1.deb package2.deb package3.deb

3. 删除包(保留配置)

dpkg -r nginx

4. 彻底删除包(包括配置)

dpkg -P nginx

5. 列出所有已安装的包

dpkg -l

6. 列出已安装包中包含关键字的包

dpkg -l | grep nginx

7. 查看包的状态

dpkg -s nginx

8. 列出包安装的所有文件

dpkg -L nginx

9. 查找文件所属的包

dpkg -S /usr/bin/vim

10. 只解压包不配置

dpkg --unpack nginx.deb

11. 配置已解压的包

dpkg --configure nginx

12. 检查系统中损坏的包

dpkg --audit

13. 导出当前安装包列表

dpkg --get-selections > installed_packages.txt

14. 根据列表恢复包

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

配置文件

主配置文件

  • /etc/dpkg/dpkg.cfg - dpkg 的主配置文件
  • /etc/dpkg/dpkg.cfg.d/ - 额外配置文件目录

包信息数据库

  • /var/lib/dpkg/status - 包状态数据库
  • /var/lib/dpkg/info/ - 包信息目录

配置文件示例

# /etc/dpkg/dpkg.cfg
force-confdef
force-confold

配置选项说明

选项说明
force-confdef保留默认配置(当配置文件有冲突时)
force-confold保留旧配置(当配置文件有冲突时)
force-confnew使用新配置(当配置文件有冲突时)
status-file指定状态文件路径
log指定日志文件路径

实用技巧

1. 修复损坏的包

dpkg --configure -a

2. 强制安装包(忽略依赖问题)

dpkg -i --force-depends package.deb

3. 强制覆盖文件

dpkg -i --force-overwrite package.deb

4. 重新配置已安装的包

dpkg-reconfigure nginx

5. 列出所有已安装包并计数

dpkg -l | grep -c '^ii'

6. 查找未完全配置的包

dpkg -l | grep -E '^.U'

相关命令

命令说明
apt高级包管理工具,依赖 dpkg
apt-get命令行包管理工具
apt-cache查询包缓存信息
aptitude另一个高级包管理工具
dpkg-deb操作 deb 文件的工具

注意事项

  1. 权限要求:大多数 dpkg 命令需要 root 权限,建议使用 sudo
  2. 依赖问题:dpkg 不自动处理依赖关系,需要使用 APT 来解决依赖
  3. 配置文件冲突:升级包时可能出现配置文件冲突,需手动处理
  4. 强制操作:使用 --force-* 选项时要谨慎,可能导致系统不稳定
  5. 与 APT 的关系:日常使用建议使用 APT,dpkg 主要用于手动安装 deb 文件

总结

dpkg 是 Debian 系 Linux 发行版的底层包管理工具,负责处理 .deb 包的安装、删除和配置。虽然日常使用中更多使用 APT,但了解 dpkg 的基本用法对于系统管理和故障排除非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值