‘apt-get’ 已被弃用了吗?

‘apt-get’ 已被弃用了吗?

最近,我看到很多人使用

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
  • 我的程序还能运行吗?

答案1

不,apt-get它并没有被弃用。的手册页对vs. (和)apt有如下说明:aptapt-getapt-cache

脚本使用及与其他 APT 工具的区别

apt(8) 命令行设计为最终用户工具,其行为可能会因版本不同而有所变化。虽然它试图不破坏向后兼容性,但如果更改似乎有利于交互使用,则也无法保证这一点。

apt(8) 的所有功能在专用 APT 工具(如 apt-get(8) 和 apt-cache(8))中均可用。apt(8) 只会更改某些选项的默认值(请参阅 apt.conf(5),特别是二进制范围)。因此,您应该优先在脚本中使用这些命令(可能启用一些附加选项),因为它们尽可能保持向后兼容性。

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,现在它不再受支持!请升级到 16.04,这是一个 LTS 版本。

我的程序还能运行吗?

就程序而言,我假设您指的是脚本。是的,它们仍将有效,因为apt-get尚未弃用。事实上,您应该更喜欢apt-get在脚本中使用 以实现向后兼容,正如 的apt手册页所建议的那样。

答案2

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

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

编辑:来自 apt(8) 的手册页

apt 命令旨在让最终用户感到愉快,并且不需要像 apt-get(8) 那样向后兼容。

编辑2:apt旨在修复 中的一些基本依赖性缺陷apt-get。由于它是一个包装器,apt因此级别更高,同时也失去了一些向后兼容性和脚本功能。

答案3

aptapt-get基本上是相同的包管理器,它们所做的事情是相同的。

不同之处在于它还apt包含例如的功能apt-cache并且具有更美观的输出。

但是,apt至少在您想要解析其输出时,它还不应在脚本中使用,因为它仍在开发中,其输出格式可能仍会发生变化。Bash 的 tab-autocomplete 还不能与许多apt命令配合使用。

您可以同时使用两者,无论哪种方式您都喜欢。

相关内容