apt 与 dpkg 之间的关系

apt 和 dpkg 之间的关系。简单来说:dpkg 是基础,apt 是高级封装。它们都是 Ubuntu/Debian 系统中用来管理 .deb 软件包的工具,但它们的工作方式和职责不同。

dpkg

  1. 核心角色: dpkg 是 Debian/Ubuntu 包管理系统的基础。它是一个低层的工具,直接处理 .deb 软件包文件。
  2. 工作方式: 它像一个“安装器”,负责将 .deb 文件中的文件解压到正确的系统位置,并运行软件包提供的配置脚本。
  3. 操作对象: 主要操作单个的 .deb 文件。如果你想从本地文件安装软件,通常会用到 dpkg -i package.deb
  4. 局限性:
    • 不处理依赖关系: dpkg 本身不会自动解决软件包依赖问题。如果你安装的软件包需要其他软件包,而那些软件包没有安装,dpkg 会失败。
    • 不管理软件源: 它不知道从哪里下载 .deb 文件,需要你手动提供文件。
    • 缺乏智能性: 对于更复杂的操作(如升级、回滚、查找软件),它不够方便。

apt

  1. 核心角色: apt (Advanced Package Tool) 是一个高层的包管理器。它是一个前端,或者说是一个框架,它利用 dpkg 来完成实际的安装/删除操作,但提供了更强大的功能。
  2. 工作方式: 它像一个“智能管家”,负责与软件源(repository)交互,下载软件包,自动解决依赖关系,并调用 dpkg 来实际安装或删除软件包。
  3. 操作对象: 可以操作软件源中的软件包,也可以操作本地的 .deb 文件(但通常 apt install ./package.deb 会内部调用 dpkg)。它关注的是软件包的名称状态
  4. 优势:
    • 自动处理依赖: 这是 apt 最核心的优势。它会自动查找并安装所需的依赖包。
    • 管理软件源: 它知道如何从配置的软件源列表中查找和下载软件包。
    • 提供高级功能: 如搜索软件 (apt search)、查看软件详情 (apt show)、升级系统 (apt upgrade)、清理缓存 (apt clean) 等。
    • 更友好的命令: 命令通常更直观,例如 apt install packagedpkg -i package.deb (需要文件) 或手动处理依赖更方便。

它们的关系

  1. 依赖关系: apt 依赖于 dpkg。当你使用 apt install package 时,apt 会做以下事情:
    • 查询软件源,找到 package 及其依赖。
    • 下载所有需要的 .deb 文件。
    • 调用 dpkg 来安装这些 .deb 文件,并监控 dpkg 的过程,如果 dpkg 因依赖问题卡住,apt 会尝试修复(比如安装缺失的依赖)。
  2. 分工合作:
    • dpkg 负责文件级别的操作:将软件包文件安装到系统,或从系统中删除文件。
    • apt 负责逻辑层面的操作:查找、下载、依赖解析、整体安装/删除流程管理。

常用命令对比

功能dpkg 命令示例apt 命令示例说明
安装dpkg -i package.debapt install packagedpkg 安装本地文件;apt 从源安装或安装本地文件(内部调 dpkg
删除dpkg -r packageapt remove packagedpkg 只删除程序文件;apt 删除程序文件,可能保留配置文件
彻底删除(含配置)dpkg -P packageapt purge packagedpkg 彻底删除;apt 彻底删除
列出已安装包dpkg -lapt list --installeddpkg 更底层,信息更原始;apt 更友好
搜索软件包`dpkg -lgrep keyword`apt search keyword
更新包列表-apt updateapt 管理源,需要此命令
升级已安装包-apt upgradeapt full-upgradeapt 自动处理依赖升级

总结

  • 想安装/删除单个 .deb 文件,或者需要精确控制 dpkg 的行为时,用 dpkg
  • 日常绝大多数的软件包管理操作(安装、删除、升级、搜索),都应该使用 apt,因为它更智能、更方便,能自动处理依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值