我在 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
。我应该将其报告为一个错误。)
如果有人推荐/建议使用额外的包,那么删除它们就很容易了。