Apt vs Dpkg – 比较两个 Debian 软件包管理器

在本文中,我们将比较 apt vs dpkg 包管理器。 如果您使用 Ubuntu(或 Mint、Debian 等),您已经熟悉 apt。 它用于安装、查找、删除包等。但您可能也看过使用 dpkg 安装包的教程。

那么,您使用哪种软件来管理您的软件包真的很重要吗? 让我们看看这两个包管理器的区别和用例。

目录

什么是 APT?

APT 代表 Debian 及其衍生产品中用于管理软件包的高级打包工具。 它用于安装、升级、配置、删除包和维护源存储库。 但是,Linux 具有 APT 也遵循的模块化设计理念。

它不是以单一的方式自己完成所有任务,而是在后台使用几个不同的应用程序来完成这些任务。 为了 example它可能使用 curl 下载 .deb 源包及其所有依赖项,然后使用 dpkg 安装它。

什么是dpkg?

dpkg(Debian 软件包管理器)在 APT 的底层工作。 虽然 APT 为您管理远程存储库并解决依赖关系,但它使用 dpkg 实际进行安装/删除包的更改. dpkg 本身无法从远程存储库中检索/下载文件,也无法确定依赖关系。

用户可以单独使用 dpkg 来安装本地 .deb 包 dpkg -i

dpkg 的其他独立用途:

  • dpkg –解压 可用于解压缩包以对其进行任何更改。
  • dpkg –配置 用于已经解包但尚未配置的包。
  • dpkg –比较版本 比较包的两个版本,如果比较为真,则返回 0 表示成功。 比较运算符是 <, <<, <=, =, >=, >>, >.
  • dpkg –添加架构 可用于添加软件包兼容的架构。

提示: 如果你使用 dpkg -i 要安装一个包,它会遇到依赖错误,运行 sudo apt-get install -f 首先解决依赖错误然后运行 dpkg -i 再次。

比较 apt 与 dpkg – 快速总结

我们无法正确区分这两个应用程序,因为它们应该在不同的级别上工作并具有不同的功能。 但是,这可以很好地了解应用程序能够做什么以及不能做什么。

职能易于磅数
可以从远程存储库下载包是的
可以解决依赖关系是的
安装本地包是(使用 dpkg)是的
安装远程包是(使用 dpkg)否(如果用户想使用 dpkg,需要手动下载软件包)
列出已安装的软件包是的是的

我们应该使用 dpkg 吗?

dpkg 是一个低级应用程序,通常不应该由最终用户使用。 在 APT 上使用 dpkg 意味着,手动下载包,手动找出并下载所有依赖项,手动下载任何升级等。但是,用户可以使用它来安装远程存储库中不可用的 .deb 包,例如 Discord 和蒸汽。

dpkg 所做的大部分工作都可以直接通过 apt 完成,如下所示。

  • 要安装本地包,我们可以使用 apt install ./<path/to/package.deb> 代替 dpkg -i <path/to/package.deb>
  • 要列出包,我们可以使用 合适的列表 代替 dpkg -l

也就是说,dpkg 确实具有排他性用途,例如配置/解包/重新打包和比较包,如上所述。

结论

dpkg 和 APT 不是用来做同样的事情的。 APT 在后台使用 dpkg 来安装软件包。 但是,dpkg 可用于安装和列出本地安装的软件包。 要阅读有关 dpkg 和 apt 的更多信息,请参阅 Debian 维基。 谢谢!