才智仍然被认为比apt-get优越吗?


191

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

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


1
今天最酷的孩子不使用apt任何一个:itsfoss.com/apt-vs-apt-get-difference
tatsu

1
aptitude why有时很方便,并且没有真正的等效项
Nathaniel M. Beaver

Answers:


131

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

  1. aptitude添加显式的按包标记,以指示是否已自动安装软件包来满足依赖性:您可以操纵这些标记(aptitude markautoaptitude unmarkauto)来更改aptitude处理软件包的方式。

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

  2. aptitude会在您每次删除已安装的软件包时删除未使用的软件包,而apt-get仅在显式要求with 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中消失;尤其是由于aptitude的改进apt-get主要在可用性方面。我想他们认为与命令行熟悉的人知道如何重新获得aptitude,并且那些不使用命令行的人不会在乎...)


10
在软件包名称上进行aptitude搜索,在软件包名称+说明上进行apt-cache(我们只需sudo apt-get install aptitude
要从

3
2.但是,apt-get会告诉您有未使用的软件包,您可以使用删除它们apt-get autoremove
sepp2k 2010年

2
一个资质的缺点是无法考虑钉扎如apt-get的完成
txwikinger

4
Aptitude会正确读取/etc/apt/preferences(并固定在其中),但当前会忽略/etc/apt/preferences.d/。这是一个已知的错误,因此有希望尽快修复。
Riccardo Murri 2010年

3
Aptitude提供了一个轻松检索变更日志的选项:aptitude changelog package-name。我不了解中的此类功能apt-get
Lekensteyn

21

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


2
+1同意在搜索时能够查看是否已安装应用程序非常方便。尽管我确实发现apt-cache搜索比aptitude搜索要快得多。
马克戴维森

我将两个字母的bash别名用于apt-cache搜索,否则我可能也会使用aptitude search
belacqua 2011年

我注意到apt-get搜寻比搜寻更彻底aptitude。我认为,后者似乎只查看软件包名称,而前者也搜索说明。例如,尝试搜索build-essential
Sparhawk

13

较早的apt-get不能正确管理依赖项,因此即使卸载了使用它们的软件包后,孤立的依赖项仍会保留在系统中-不再需要删除孤立的依赖项

sudo apt-get autoremove

aptitude总是做到这一点,并且可以更好地跟踪依赖关系,但是现在,两个软件包管理器都可以完成这项工作。

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


2
最后的陈述不正确。aptitude在Ubuntu上很好地受支持,并且默认情况下已安装。在这方面,Ubuntu和Debian之间也没有区别。
loevborg

3
它已从10.10的默认安装中删除
10年

1
以我的经验,aptitude在跟踪已安装的依赖项方面总是较差。它倾向于在删除程序时删除不相关的程序,并最终在此过程中破坏了其他程序……
Izkata 2012年

它等效apt-get autoremoveaptitude什么?我有apt-get autoremove建议删除的旧内核,但是我看不到用删除它们的方法aptitude
Alexey

1
@Alexey可以使用aptitude remove '~g'。()请注意,aptitude当使用它删除软件包时,它会自动删除未使用的依赖项。
nyuszika7h

6

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

由于某种原因,我仍然apt-get默认使用,但是当遇到问题时,我通常会以解决aptitude,似乎从未遇到过apt-get很多问题。


我在解决冲突方面也有类似的经验,aptitude从这个意义上讲,这是一种更好的选择。
VolkanYazıcı17年

1
作为记录,我只是看到apt-get install -f修复了我的系统。aptitude有问题,已解决,然后我做的第一件事就是安装aptitude :)选择是一件好事(tm)
teknopaul

3

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

可能会影响用户选择的主要区别在于,aptitude提供了ncurses界面,并且提供了可以方便使用的安全升级和完整升级选项。

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


您能解释一下ncurses接口是什么吗?
8128年

@fluteflute:ncurses是用于实现文本用户界面的库。en.wikipedia.org/wiki/Ncurses
dierre

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.