Sky*_*les 55 command-line apt bash 16.04
最近看到很多人用
sudo apt
Run Code Online (Sandbox Code Playgroud)
代替
sudo apt-get
Run Code Online (Sandbox Code Playgroud)
此外,Ubuntu 一直告诉我通过以下方式安装东西 sudo apt
The program 'foo' is currently not installed. You can install it by typing:
sudo apt install foo
Run Code Online (Sandbox Code Playgroud)
(请记住,foo 是占位符,而不是应用程序)
因此,在社区中关于使用apt
而不是的流行之后apt-get
,我开始认为 apt-get 已被弃用并且不能再在我的 bash 程序中使用。
在我的 bash 程序中,
apt-get
命令apt
吗?apt-get
危险的?edw*_*ksl 49
不,apt-get
没有被弃用。的手册页apt
有关于apt
vs. apt-get
(和apt-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.
Run Code Online (Sandbox Code Playgroud)
如果检测到有管道。例如:
$ 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
Run Code Online (Sandbox Code Playgroud)
至于你的问题,
我必须用 替换所有 apt-get 命令
apt
吗?
不,您不必替换apt-get
为apt
。相反,如果您在脚本中使用它,则应该坚持使用,apt-get
因为它具有稳定的 CLI API 并保证向后兼容性。
是
apt-get
危险的?
apt
与以下一样危险apt-get
:您应该只安装来自您信任的来源的软件。
我可以
apt
在 Ubuntu 15.10 中使用吗?
是的,你可以。这里的问题是您仍在使用 Ubuntu 15.10,它现在不受支持!请升级到 16.04,这是一个 LTS 版本。
我的程序还能用吗?
通过程序,我假设您的意思是脚本。是的,它们仍然可以工作,因为apt-get
没有被弃用。事实上,您应该更喜欢apt-get
在脚本中使用apt
的手册页建议的向后兼容性。
neg*_*usp 38
apt-get
级别较低且向后兼容。apt
对最终用户更好,并且不需要或包含apt-get
.
两者都很好。apt-get
未弃用,但您的 15.10 安装是 :)
编辑:来自 apt(8) 的手册页
apt 命令旨在让最终用户感到愉快,并且不需要像 apt-get(8) 那样向后兼容。
Edit2:apt
旨在修复apt-get
. 由于它是一个包装器,apt
因此是更高级别的,并且还失去了一些向后兼容性和脚本功能。
apt
并且apt-get
基本上是相同的包管理器,它们所做的都是相同的。
不同之处在于apt
它还包含来自 eg 的功能apt-cache
并且具有更好看的输出。
但是,apt
不应该在脚本中使用,至少如果你想解析它的输出,因为它仍在开发中,它的输出格式可能仍然会改变。Bash 的 tab-autocomplete 还不能用于许多apt
命令。
您可以使用两者,无论您喜欢哪种。
归档时间: |
|
查看次数: |
19793 次 |
最近记录: |