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

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

评论

今天最酷的孩子使用apt而不是使用以下任何一种:itsfoss.com/apt-vs-apt-get-difference

资质有时为什么很方便,却没有真正的等效物。

#1 楼

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



aptitude添加了显式的按包标记,指示是否自动安装了
软件包以满足相关性:您
可以操纵这些标志(aptitude markautoaptitude unmarkauto)来更改智能处理软件包的方式。

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

aptitude会在您每次删除已安装的软件包时删除未使用的软件包,而apt-get仅在明确要求
时才这样做。使用apt-get autoremove或指定--auto-remove
aptitude充当apt-getapt-cache中大多数功能的单个命令行前端。注意:从16.04开始,存在一个apt命令,其中包括来自apt-getapt-cache的最常用命令以及一些其他功能。
apt-cache的“搜索”相反,aptitude的“搜索”输出
还显示软件包的已安装/已卸下/已清除状态(加上
aptitude自己的状态标志)。另外,“安装”输出标记
正在安装哪些软件包以满足相关性,
由于未使用而将其删除。
aptitude具有(纯文本的)交互式UI。 br />
我个人仅对命令行程序包使用aptitude
管理(而且我从不使用文本UI);我发现其输出比apt-get / apt-cache更易读。

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

(个人而言,我很失望看到它在10.10版本中消失;
尤其是由于对apt-get的适应性改进主要是在可用性方面。我想他们认为这些是
熟悉命令行的人知道如何重新获得才能,并且
那些不使用命令行的人不会在意...)

评论


在软件包名称上进行aptitude搜索,在软件包名称+说明上进行apt-cache(我们只需使用sudo apt-get install aptitude开始每一个howto)

–拉瑟·波尔森
2010年8月9日在8:46



2.但是,apt-get会告诉您有未使用的软件包,您可以使用apt-get autoremove将其删除。

–sepp2k
2010年8月9日,9:19

才能的缺点之一是无法像apt-get一样考虑固定

–txwikinger
2010-10-15 14:21

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

–里卡多·穆里(Riccardo Murri)
2010-10-15 14:45

Aptitude有一个选项可以轻松检索更改日志:aptitude changelog软件包名称。我不知道apt-get中的这种功能。

– Lekensteyn
2011-2-13在8:48

#2 楼

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

评论


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

–马克·戴维森
2010年8月9日在8:02

我将两个字母的bash别名用于apt-cache搜索,或者我也可能会使用aptitude搜索。

– Belacqua
2011-3-8的0:28

我注意到apt-get的搜索比智能搜索更彻底。我认为,后者似乎只查看软件包名称,而前者也搜索说明。例如尝试搜索基本构建。

– Sparhawk
2013年9月23日在2:45

#3 楼

早期的apt-get不能正确管理依赖项,因此即使卸载了正在使用它们的软件包,也导致孤立的依赖项保留在系统中-不再如此,要删除孤立的依赖项,请使用

sudo apt-get autoremove


aptitude总是能够正确地做到这一点,并且可以更好地跟踪依赖关系,但是现在这两个软件包管理器都可以做到。

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

评论


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

–loevborg
2010年8月9日在8:19

它已从10.10的默认安装中删除。

– kashif
2010年8月9日,9:57

以我的经验,在跟踪已安装的依赖项方面,才智一直较差。在删除程序时,它倾向于删除不相关的程序,并最终破坏了该程序中的其他程序。

–伊兹卡塔
2012年8月13日在20:24

用apapt等同于apt-get autoremove?我有旧的内核,可以通过apt-get autoremove来删除,但是我看不到有能力删除它们。

– Alexey
17-2-15在23:45



@Alexey您可以使用aptitude remove'〜g'。 (来源)请注意,在使用aptitude删除软件包时,它将自动删除未使用的依赖项。

–nyuszika7h
17年7月16日在17:51

#4 楼

除了其他答案外,还值得注意的是,apt-get经常会因为简单的操作而浮出水面,并且无法处理依赖版本不匹配或损坏的程序包(尽管它声称可以使用apt-get install -f修复损坏的程序包,我说:从字面上看,我一生都没有见过这种工作)。

由于某种原因,默认情况下我仍然使用apt-get,但是当遇到问题时,我通常最终会用aptitude解决它们,似乎从来没有遇到apt-get的众多问题。

评论


我在解决冲突方面也有类似的经验,从这个意义上讲,才智是一种更好的选择。

– VolkanYazıcı
17年4月26日在19:13

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

– teknopaul
18年5月6日在12:58



#5 楼

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

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

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

评论


您能否解释一下ncurses接口是什么?

– 8128
2010年8月9日在8:22

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

– Dierre
10-11-12在2:54

#6 楼

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