it-swarm.cn

aptitude仍被认为优于apt-get吗?

当我第一次使用aptitude开始使用Ubuntu是'in-thing'时,对apt-get有一些明显的改进。我是否正确地说apt-get现在已经“赶上”了aptitude,并且使用它几乎没有区别(尽管最好选择其中一个,并坚持使用它)?

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

191
8128

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

  1. aptitude添加显式的每包标志,指示是否自动安装包以满足依赖:您可以操作这些标志(aptitude markautoaptitude unmarkauto)以更改aptitude处理包的方式。

    apt-get会跟踪相同的信息,但不会显式显示。 apt-mark可用于操作标志。

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

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

  4. apt-cache的“搜索”相反,aptitude的“搜索”输出还显示了包的安装/删除/清除状态(加上aptitude自己的状态标志)。此外,“安装”输出标记正在安装哪些包以满足依赖性,并且因为未使用而被删除。

  5. aptitude具有(仅文本)交互式UI。

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

但是,如果aptitude在Ubuntu上不再是标准的,除了在指令和操作方法文档中使用apt-get之外别无选择。

(就个人而言,我很失望地看到它在10.10中消失;特别是因为apt-get上的aptitude改进主要是在可用性方面。我猜他们认为那些熟悉命令行的人知道如何获得能力,那些不使用命令行的人不会在意...)

131
Riccardo Murri

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

21
itsadok

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

Sudo apt-get autoremove

aptitude总是这样做并更好地跟踪依赖关系,但现在两个包管理器都能完成这项工作。

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

13
kashif

除了其他答案之外,还值得注意的是apt-get经常出现在简单的操作上,并且它无法处理依赖版本不匹配或破坏的软件包(虽然它声称破坏的软件包可以用apt-get install -f修复,我'从字面上看,我一生中从未见过这样的工作。

出于某种原因,我仍然默认使用apt-get,但是当它遇到问题时,我通常最终用aptitude解析它们,这似乎永远不会遇到apt-get的许多问题。

6
weberc2

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

可能影响用户选择的主要区别是,aptitude提供了一个ncurses接口,并提供了安全升级和全面升级的选项,可以派上用场。

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

3
Mark Davidson

在服务器上我更喜欢Atitude,因为它带有一个非常好的界面来检查包更改日志,选择性升级和那些东西。 apt-get虽然更快,但我总是使用它,如果我只想更新所有内容而不会有太多麻烦。

1
Gladen