Ansible 中的 apt: update_cache=yes 中的 cache=yes 是什么意思?

Ansible 中的 apt: update_cache=yes 中的 cache=yes 是什么意思?

我知道apt update更新支持发行版上的现有包索引,但不会升级基于这些包索引安装的已安装包(实用程序)(作为apt upgrade升级包)。

男人apt-get:

update

update用于从源重新同步包索引文件。可用包的索引是从 中指定的位置获取的/etc/apt/sources.list。例如,当使用 Debian 存档时,此命令会检索并扫描文件Packages.gz,以便获得有关新软件包和更新软件包的信息。更新应始终在upgrade 或之前执行dist-upgrade。请注意,由于无法提前知道包文件的大小,因此整体进度表将不正确。

我还知道 Ansible 有模块apt其中包括该指令:

- name: update the apt package index i.e. apt-get update
  apt: update_cache=yes

相关 Ansible 文档说:

在操作之前运行相当于 apt-get update 的操作。可以作为软件包安装的一部分运行,也可以作为单独的步骤运行。

我假设他们说“等效”,因为 Ansible 将“旧”代码转换为社区派生的 up2date 等效代码(如果原始代码本身发生更改)。

但我仍然想念缓存与这里有什么关系?对我来说,计算中缓存的概念是在更近的地方复制一些很远的东西,以便在我们需要使用它时保存导航,从而节省资源,但我仍然怀念它apt updateapt update.

答案1

apt维护本地包列表;这就是它“知道”哪些包可用、它们的依赖关系等的方式。apt update通过从存储库检索这些包来更新这些包列表;它不会升级任何软件包。

这就是缓存:它是系统上配置的存储库中可用的包信息的本地缓存。apt基于此缓存做出所有决策,因此它必须保持最新。过时的缓存可能会导致apt错过更新或无法完全安装软件包(因为存储库中不再提供所需的版本)。

update_cache=yes告诉 Ansible 的apt模块在应用任何必要的更改(如果有)之前刷新缓存。

相关内容