问题描述
最近,我见过很多人使用
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
的手册对此有用apt
与apt-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?
apt
与apt-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
手册页所示。
第三种解决方法
apt
和apt-get
基本上是相同的包管理器,它们所做的是相同的。
不同之处在于apt
还包含来自例如apt-cache
具有更好看的输出。
但是,apt
不应该在脚本中使用,至少如果要解析其输出,因为它仍处于开发阶段,其输出格式可能仍会更改。 Bash的tab-autocomplete还没有使用许多apt
命令。
您可以使用两者,无论您喜欢哪种。