YIMI's Blog
笔记是一种心态!

APT 和 DPKG 常用操作命令

APT 和 DPKG 常用操作命令手册

APT(Advanced Package Tool)和 DPKG(Debian Package)是 Debian/Ubuntu 系统中最常用的包管理工具。

  • APT:高级工具,用于在线安装、升级、管理依赖。
  • DPKG:底层工具,直接操作 .deb 包,不处理依赖关系。

1. APT 常用命令

1.1 更新软件包列表

sudo apt update            # 更新可用软件包列表(不升级软件)

1.2 升级软件包

sudo apt upgrade           # 升级所有可升级的软件包(不删除旧包)
sudo apt full-upgrade      # 升级并处理依赖冲突(可能删除旧包)
sudo apt dist-upgrade      # 同 full-upgrade(Ubuntu/Debian 推荐)

1.3 安装软件

sudo apt install <package>          # 安装指定软件包
sudo apt install <package>=<version> # 安装特定版本
sudo apt install <package1> <package2> # 安装多个软件

1.4 卸载软件

sudo apt remove <package>           # 卸载软件但保留配置文件
sudo apt purge <package>            # 卸载并删除配置文件(彻底清理)
sudo apt remove --purge <package>    # 同上(purge 的另一种写法)

1.5 清理无用包

sudo apt autoremove          # 删除不再需要的依赖包(保留配置)
sudo apt autoremove --purge  # 删除依赖包及其配置文件
sudo apt clean               # 删除所有已下载的 .deb 包(/var/cache/apt/archives)
sudo apt autoclean           # 仅删除旧版本的 .deb 包

1.6 搜索软件

apt search <keyword>         # 搜索软件包(支持模糊匹配)
apt show <package>           # 查看软件包详细信息
apt list --installed         # 列出所有已安装的软件包
apt list --upgradable        # 列出可升级的软件包

1.7 修复依赖问题

sudo apt --fix-broken install  # 修复依赖问题
sudo apt install -f           # 同上

2. DPKG 常用命令

2.1 安装 .deb 包

sudo dpkg -i <package.deb>    # 安装本地 .deb 包(不处理依赖)
sudo apt install -f           # 如果依赖缺失,用此命令修复

2.2 卸载软件

sudo dpkg -r <package>        # 卸载软件(保留配置文件)
sudo dpkg -P <package>        # 彻底卸载(删除软件和配置)

2.3 查询软件包

dpkg -l                       # 列出所有已安装的软件包
dpkg -l | grep <keyword>      # 搜索已安装的包
dpkg -s <package>             # 查看软件包状态
dpkg -L <package>             # 列出软件包安装的文件
dpkg -S <file>                # 查找某个文件属于哪个包

2.4 解压 .deb 包(不安装)

dpkg -x <package.deb> <dir>   # 解压 .deb 包到指定目录
dpkg -e <package.deb> <dir>   # 提取 .deb 的控制信息(DEBIAN/ 目录)

2.5 修复损坏的包

sudo dpkg --configure -a      # 尝试修复未完成的安装

3. APT 和 DPKG 结合使用

3.1 下载 .deb 包但不安装

apt download <package>        # 下载 .deb 包到当前目录

3.2 查看软件包的依赖

apt depends <package>         # 查看依赖哪些包
apt rdepends <package>        # 查看哪些包依赖它

3.3 重新配置已安装的包

sudo dpkg-reconfigure <package>  # 重新运行软件包的配置(如 tzdata)

4. 高级用法

4.1 锁定软件包版本(防止自动升级)

sudo apt-mark hold <package>    # 锁定版本
sudo apt-mark unhold <package>  # 解除锁定
sudo apt-mark showhold          # 查看锁定的包

4.2 查看软件包日志

cat /var/log/apt/history.log    # 查看 APT 操作历史
cat /var/log/dpkg.log           # 查看 DPKG 操作历史

4.3 强制降级软件包

sudo apt install <package>=<version>  # 指定版本安装

4.4 额外清理残留配置

即使使用 --purge,某些残留的配置文件可能仍会留在系统中。可以使用以下命令清理:

dpkg -l | grep '^rc' | awk '{print $2}' | sudo xargs dpkg --purge

5. 总结

功能 APT 命令 DPKG 命令
安装 apt install dpkg -i
卸载 apt remove/purge dpkg -r/-P
查询 apt list/show dpkg -l/-s
修复 apt -f install dpkg --configure -a
清理 apt autoremove dpkg -P

推荐使用 APT(自动处理依赖),DPKG 仅用于直接操作 .deb 包

希望这份手册能帮助你高效管理 Debian/Ubuntu 软件包! 🚀