dpkg 或 apt-get 两者中哪一个给出更完整的结果?

dpkg 或 apt-get 两者中哪一个给出更完整的结果?

我想弄清楚 Ubuntu (14.04/16.04) 系统上安装的每个软件包/软件。

根据我的理解以及关于 SE 和其他地方的几次讨论,比如unix_stack_exchange 询问ubuntu,看起来系统上安装了任何软件包/软件,最终都会使用 dpkg (无论是软件包本身还是它的依赖项)。

  1. 那么这是否意味着 dpkg 总是会比 apt-get 提供系统上安装的所有软件包(包括依赖项等)更全面的列表?
  2. 可以安全地假设 dpkg 可用于列出系统上安装的所有软件(用户/系统/等应用程序)吗?

答案1

dpkg -l将始终给出已安装(或已删除但仍配置)的软件包的正确列表。它实际上用来dpkg-query完成它的工作,引用的内容/var/lib/dpkg/status已安装软件包的参考。

apt使用相同的信息,但直到最近才提供列出软件包的简单方法;现在这样做,您将得到与(以不同格式)apt list给出的相同结果。dpkg -l

dpkg可以用来列出所有套餐。如果系统上的所有软件都是使用软件包安装的,那么它会列出所有软件;但如果任何软件是手动安装的,没有软件包,那么它就不会知道。

答案2

您可以使用apt选项 ( man apt-cache, man apt..) 来获取所需的信息

dpkg 还是 apt?

dpkg应该被视为一个系统工具(后端),并且apt被视为一个更接近用户的工具,它克服了前者的局限性。这些工具协同工作,每种工具都有其特殊性,适合特定的任务。

dpkge,g 1:您可以通过或列出系统上已安装的软件包apt

apt list --installed
dpkg -l

e,g 2:要找出可以使用的依赖项apt-rdepends,或者apt-cache showpkg...

apt-rdepends <package_name>
apt-cache showpkg <package_name>

相关内容