当前位置: 首页>>技术教程>>正文


性能仍被认为优于apt-get?

, , ,

问题描述

当我第一次使用aptitude开始使用Ubuntu时,是’in-thing’,与apt-get相比有所改进。我是否正确地说apt-get现在与aptitude有’caught up’,并且它使用的差别很小(尽管最好选择一个或另一个,并坚持下去)?

而且,如果将aptitude设置为从默认的Ubuntu安装中删除,那么每个人都应该恢复到apt-get,特别是在指导对CLI感兴趣的新用户时?

最佳解决思路

据我所知,在10.04,aptitude和apt-get的主要区别是:

  1. aptitude添加显式per-package标志,指示是否自动安装软件包以满足依赖关系:您可以操作这些标志(aptitude markautoaptitude unmarkauto)以更改aptitude处理软件包的方式。 apt-get跟踪相同的信息,但不会明确显示。 apt-mark可用于操作标志。

  2. aptitude将提供在每次移除已安装的软件包时移除未使用的软件包,而apt-get只会在apt-get autoremove明确提问或指定--auto-remove时执行此操作。

  3. aptitude用作单个命令行 front-end,用于apt-getapt-cache中的大多数功能。注意:从16.04开始,有一个apt命令,其中包含apt-getapt-cache最常用的命令以及一些额外的功能。

  4. apt-cache的”search”相反,aptitude的”search”输出还显示了软件包的安装/移除/清除状态(以及aptitude自己的状态标志)。此外,”install”输出标记正在安装哪些软件包以满足相关性,以及哪些软件包因未使用而被删除。

  5. aptitude有一个(text-only)交互式用户界面。

我个人仅使用aptitude来管理我的命令行包管理(我从不使用文本UI);我发现它的输出比apt-get /apt-cache更可读。

但是,如果aptitude在Ubuntu上不再是标准配置,则除了在说明和how-to文档中使用apt-get之外别无选择。

(就我个人而言,我非常失望地看到它在10.10版中消失;尤其是因为与apt-get相比能力的提升主要在可用性方面,我猜他们认为那些熟悉命令行的人知道如何获得适应能力,而那些谁不使用命令行将不在乎……)

次佳解决思路

我想现在是个人选择的问题。我发现打字aptitude search对我来说比apt-cache search更有意义,我喜欢它告诉我在搜索输出中安装了哪些软件包,而不必运行dpkg -l

第三种解决思路

之前的apt-get不会正确管理依赖关系,因此即使在卸载了使用它们的包之后,也会导致孤立的依赖关系保留在系统中 – 这不再是这种情况,要移除孤立的依赖关系

sudo apt-get autoremove

aptitude始终做到了这一点并更好地跟踪依赖关系,但是现在包管理员都能完成这项工作。

在Ubuntu上,最好使用apt-get,因为它受到公司的支持和认可,在debian上我会使用aptitude

第四种思路

除了其他答案之外,还值得注意的是apt-get经常会因为简单的操作而落在其面前,并且它无法处理依赖版本不匹配或者破损的包(虽然它声称可以使用apt-get install -f修复损坏的包,在我的整个生活中从未看到过这样的工作)。

出于某种原因,我仍默认使用apt-get,但遇到问题时,我通常最终会用aptitude解决问题,而aptitude似乎从未遇到过apt-get的许多问题。

第五种思路

我会说在我个人的经验aptitude和apt-get有非常相似的功能。

可能会影响用户选择的主要区别在于,aptitude提供了一个ncurses接口,并且它提供了safe-upgrade和full-upgrade的选项,可以派上用场。

我个人总是使用apt-get,并建议新用户也使用apt-get。如你所说,默认情况下,Ubuntu会默认从Ubuntu中删除,这似乎仍然是最好的建议。就好像他们确实想使用aptitude一样,他们需要知道如何使用apt-get来安装aptitude,如果他们想要的话:)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/220.html,未经允许,请勿转载。