我确实不应该在同一台机器上运行 apt-get 和 aptitude 吗?

我确实不应该在同一台机器上运行 apt-get 和 aptitude 吗?

我在 Ubuntu 上使用 apt-get 已有几年了,也尝试过几次 aptitude。我在一些博客上看到,一旦你在系统上使用过其中一种工具,就应该坚持使用它,不要使用另一种,因为它们的工作方式不同,会导致问题。

现在,读完之后apt-get 和 aptitude 有什么区别?,我不明白为什么。

那么这是真的吗?在这种情况下,像 Ubuntu 这样的系统可能在后台使用 apt-get 进行自动更新,是否还建议使用 aptitude ?

答案1

戴维·帕什利回答这里了解更多信息。

答案2

嗯,aptitude更现代,并且至少缺少一个功能apt-get aptitude 跟踪由于依赖性(而不是通过明确的用户请求)而安装的软件包,并在需要它们的软件包从系统中删除时自动删除它们。 编辑:实际上,apt-get 的最新版本也支持这个功能。不过,aptitude 的冲突解决功能显然比 apt-get 更先进。

另请注意,aptitude 现在首选apt-get 上。但除了上述问题之外,两者完全兼容,可以并行使用。

顺便说一句,请注意,您也可以直接从命令行使用 aptitude,例如

aptitude install foo

所以如果您只使用apt-get进行直接安装的话,那么您可以完全切换到aptitude。

答案3

还有更多内容(对我而言,这是不同时使用两者的主要原因):

正如我所问的此主题:如果出于任何原因,您需要保留某个软件包,也就是说,即使该软件包可用,您也不想升级它,有两种不同的方法可以做到这一点取决于您使用的工具:

  • 资质:

aptitude 保存软件包名称

  • apt-get:

echo “软件包名称 hold” | dpkg --set-selections

这意味着如果您使用 apt-get 保留一个软件包,当执行“aptitude upgrade”时,您最终将升级您之前想要保留的软件包!

这可能会非常烦人,特别是当您在团队中工作并且人们同时使用这两种工具时。

答案4

此外,aptitude也可以代替apt-cache。我倾向于使用它——如果你以交互模式启动它并忘记了,sudo有一个选项可以解决这个问题。:)

值得注意的是,我有时会aptitude自动安装推荐或建议的依赖项;如果它看起来可疑,您可能需要检查是否真的需要一个包(我曾经在安装了一些 SMART 监控工具后aptitude安装过postfix。我应该将其报告为一个错误。)

如果有人推荐/建议使用额外的包,那么删除它们就很容易了。

相关内容