不赞成使用“ apt-get”吗?


54

最近,我看到很多人使用

sudo apt

代替

sudo apt-get

另外,Ubuntu一直告诉我要通过 sudo apt

The program 'foo' is currently not installed. You can install it by typing:
sudo apt install foo

(请记住,foo是占位符,而不是应用程序)

因此,在社区普遍使用apt而不是代替之后apt-get,我开始认为apt-get已过时,不再可以在我的bash程序中使用。

在我的bash程序中

  • 我必须替换所有apt-get命令apt吗?
  • apt-get危险吗?
  • 我的程序仍然可以使用吗?


Apt比apt-get更漂亮
WinEunuuchs2Unix

2
之所以使用某些用户(例如我本人)的原因apt是因为它比短apt-get。按键次数更少,花费的时间更少。我用apt-get类似的东西check
Gallifreyan

Answers:


36

apt-get是较低级别并向后兼容。apt对最终用户更好,并且不需要或包含中存在的一些额外功能apt-get

两者都很好。apt-get未弃用,但您的15.10安装是:)

编辑:从apt(8)的手册页

apt命令对于最终用户而言是愉快的,并且不需要像apt-get(8)那样向后兼容。

Edit2:apt旨在修复的一些基本依赖缺陷apt-get。因为它是包装器,apt所以它是更高级别的,并且还失去了一些向后兼容性和脚本功能。


19
apt-get中的哪些功能不是apt中的?最终用户如何更好?
安华

4
同样,apt-get也不比apt低。这是一个误导性信息。apt与apt-get处于同一级别,而apt只是围绕apt-get和apt-cache的包装
Anwar

@安瓦尔:有区别。一个示例:apt upgradeapt-get upgrade,因为前者安装新软件包,而后者未安装。
Gunnar Hjalmarsson

26
@Anwar如果apt是包装器,apt-get那么肯定是更高级别的。
塔维安·巴恩斯16/09/26

2
@Anwar这实际上是“较高级别”或“较低级别”的定义。apt是更高级别的,因为它包装了apt-get。一种测试是,如果您的apt损坏了,apt-get仍然可以工作,反之亦然。
罗伯特爵士

47

不,apt-get不推荐使用。的手册页上apt有关于aptvs apt-get(和apt-cache)的说法:

脚本用法和其他APT工具的差异

apt(8)命令行被设计为最终用户工具,它可能会更改版本之间的行为。尽管它试图不破坏向后兼容性,但是如果更改对交互使用有利,则也不能保证。

apt(8)的所有功能均可在专用APT工具中使用,例如apt-get(8)和apt-cache(8)。apt(8)仅更改某些选项的默认值(请参阅apt.conf(5),尤其是Binary范围)。因此,您最好在脚本中使用这些命令(可能启用了一些附加选项),因为它们尽可能地保持向后兼容性。

apt 也给出警告说

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

如果检测到有管道。例如:

$ apt show python | grep Package

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Package: python
APT-Sources: http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

至于你的问题

我必须用替换所有apt-get命令apt吗?

不,您不必替换apt-getapt。相反,如果您在脚本中使用它,则应坚持使用,apt-get因为它具有稳定的CLI API并保证了向后兼容性。

apt-get危险吗?

apt就像apt-get:危险一样:您只能从您信任的来源安装软件。

可以apt在Ubuntu 15.10中使用吗?

是的,可以。这里的问题是您仍在使用Ubuntu 15.10,现在不支持它!请升级到LTS版本16.04。

我的程序仍然可以使用吗?

我认为程序是指脚本。是的,由于apt-get未弃用,它们仍然可以工作。实际上,您应该更喜欢apt-get在脚本中使用,以获得apt的手册页建议的向后兼容性。


7

apt并且apt-get基本上是相同的包管理器,它们的作用是相同的。

不同之处在于apt它还包含来自的功能,apt-cache并且具有更好的外观输出。

但是,apt至少在要解析其输出的情况下,不应在脚本中使用它,因为它仍在开发中并且其输出格式可能仍会更改。Bash的制表符自动完成功能还不能与许多apt命令一起使用。

您可以同时使用两者,无论您喜欢哪个。


apt提供了apt-cache功能,但增加了延迟!尝试使用apt搜索包和apt-cache搜索包。使用政策相同
Anwar

@Anwar我使用根本看不到任何区别apt(-cache) policy。使用apt(-cache) search,速度是有差异的,是的,但是的输出apt已排序并以良好的格式返回。
字节指挥官

-1

从其他答案中可以看出,可以使用aptapt-get。我想补充的是,当我apt几年前尝试过时,我注意到它以与以往不同的方式解决了冲突apt-get。当情况比较棘手时(必须删除某些东西,将某些软件包固定到特定版本,我将软件包降级,或者我使用了来自不同版本的混合软件包),apt通常是想删除大量软件包或无法解决该问题。冲突。

由于apt-get在这些情况下要好得多,并且没有任何缺点,所以我放弃了apt,继续使用它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.