当前位置: 首页>>技术教程>>正文


‘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是占位符,而不是app)

因此,在社区中使用apt代替apt-get后,我开始认为apt-get已被弃用,不能再用于我的bash程序。

在我的bash程序中,

  • 我是否必须用apt替换所有apt-get命令?

  • apt-get危险吗?

  • 我的课程还能运作吗?

最佳解决方法

apt-get较低级别且向后兼容。 apt对于end-users更好,并且不需要或包含apt-get中存在的一些额外特征。

两者都很好。 apt-get不推荐使用,但您的15.10安装是:)

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

The apt command is meant to be pleasant for end users and does not need to be backward compatible like apt-get(8).

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

次佳解决方法

不,apt-get不推荐使用。 apt的手册对此有用aptapt-get(和apt-cache):

SCRIPT USAGE AND DIFFERENCES FROM OTHER APT TOOLS

The apt(8) commandline is designed as an end-user tool and it may change behavior between versions. While it tries not to break backward compatibility this is not guaranteed either if a change seems beneficial for interactive use.

All features of apt(8) are available in dedicated APT tools like apt-get(8) and apt-cache(8) as well. apt(8) just changes the default value of some options (see apt.conf(5) and specifically the Binary scope). So you should prefer using these commands (potentially with some additional options enabled) in your scripts as they keep backward compatibility as much as possible.

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

至于你的问题,

do i have to replace all apt-get commands with apt?

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

is apt-get dangerous?

aptapt-get一样危险:您只应从您信任的来源安装软件。

can i use apt in Ubuntu 15.10?

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

will my programs still work?

通过程序,我认为你的意思是脚本。是的,它们仍然有效,因为apt-get不被弃用。事实上,您应该更喜欢在脚本中使用apt-get以实现向后兼容性,如apt手册页所示。

第三种解决方法

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

不同之处在于apt还包含来自例如apt-cache具有更好看的输出。

但是,apt不应该在脚本中使用,至少如果要解析其输出,因为它仍处于开发阶段,其输出格式可能仍会更改。 Bash的tab-autocomplete还没有使用许多apt命令。

您可以使用两者,无论您喜欢哪种。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1635.html,未经允许,请勿转载。