![我应该在 shell 脚本中使用 apt 还是 apt-get?](https://linux22.com/image/174445/%E6%88%91%E5%BA%94%E8%AF%A5%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%20apt%20%E8%BF%98%E6%98%AF%20apt-get%EF%BC%9F.png)
apt
是 Linux 发行版推荐的命令。它提供了管理包的必要选项。它的选项较少但易于记住,因此更易于使用。
正如引用的其福斯网站
没有理由坚持使用 apt-get ,除非您要执行利用 apt-get 更多功能的特定操作。
apt
是 apt-get 和 apt-cache 命令的子集,提供包管理所需的命令- 虽然 apt-get 不会被弃用,但作为普通用户,您应该开始更频繁地使用 apt
当我在 shell 脚本中使用时,我收到此错误apt
,而当我使用它时,则不会发生此错误apt-get
”
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
我的问题是:
- 为什么没有
apt
稳定的 CLI 界面? - 如何
apt
谨慎或安全使用? - 如何禁用此错误消息?
答案1
apt
是推荐的命令交互的由管理员使用,不能在 shell 脚本中使用。
这在很大程度上得到了解决联机apt
帮助页:
这适合(8)命令行被设计为最终用户工具,它可能会改变版本之间的行为。虽然它试图不破坏向后兼容性,但如果更改看起来有利于交互使用,则不能保证这一点。
的所有功能适合(8)可在专用 APT 工具中使用,例如apt-get(8)和apt 缓存(8)以及。适合(8)只是更改某些选项的默认值(请参阅apt.conf(5)特别是二进制范围)。因此,您应该更喜欢在脚本中使用这些命令(可能启用一些附加选项),因为它们尽可能保持向后兼容性。
因此:
apt
没有稳定的 CLI 界面来允许重大更改(如果它们被认为是有益的)。你不能,该工具显然不是为此设计的。
在脚本中使用
apt-get
或以避免出现错误消息。apt-cache
答案2
由于apt-get
已经存在并且没有充分的理由更改其脚本界面,因此apt
专门为直接交互使用而引入,因此可以使其尽可能“友好”没有必须关心完全的向后兼容性。因此,您应该仅apt-get
在脚本中使用,以防止将来的接口更改。
OTOH,因为它apt
的设计是“友好的”,所以只要你注意它告诉你的内容,它也应该是安全的。
我猜测(但我还没有测试过这一点),apt
如果您将其作为登录 shell 的直接子级运行,您可能会认为它正在交互运行,从而抑制警告;尝试运行类似的东西sh -l -c "apt $ARGS"
。