我应该在 shell 脚本中使用 apt 还是 apt-get?

我应该在 shell 脚本中使用 apt 还是 apt-get?

apt是 Linux 发行版推荐的命令。它提供了管理包的必要选项。它的选项较少但易于记住,因此更易于使用。

正如引用的其福斯网站

没有理由坚持使用 apt-get ,除非您要执行利用 apt-get 更多功能的特定操作。

  1. apt是 apt-get 和 apt-cache 命令的子集,提供包管理所需的命令
  2. 虽然 apt-get 不会被弃用,但作为普通用户,您应该开始更频繁地使用 apt

当我在 shell 脚本中使用时,我收到此错误apt,而当我使用它时,则不会发生此错误apt-get

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

我的问题是:

  1. 为什么没有apt稳定的 CLI 界面?
  2. 如何apt谨慎或安全使用?
  3. 如何禁用此错误消息?

答案1

apt是推荐的命令交互的由管理员使用,不能在 shell 脚本中使用。

这在很大程度上得到了解决联机apt帮助页

适合(8)命令行被设计为最终用户工具,它可能会改变版本之间的行为。虽然它试图不破坏向后兼容性,但如果更改看起来有利于交互使用,则不能保证这一点。

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

因此:

  1. apt没有稳定的 CLI 界面来允许重大更改(如果它们被认为是有益的)。

  2. 你不能,该工具显然不是为此设计的。

  3. 在脚本中使用apt-get或以避免出现错误消息。apt-cache

答案2

由于apt-get已经存在并且没有充分的理由更改其脚本界面,因此apt专门为直接交互使用而引入,因此可以使其尽可能“友好”没有必须关心完全的向后兼容性。因此,您应该仅apt-get在脚本中使用,以防止将来的接口更改。

OTOH,因为它apt的设计是“友好的”,所以只要你注意它告诉你的内容,它也应该是安全的。

我猜测(但我还没有测试过这一点),apt如果您将其作为登录 shell 的直接子级运行,您可能会认为它正在交互运行,从而抑制警告;尝试运行类似的东西sh -l -c "apt $ARGS"

相关内容