我正在编写一个 Ansible 角色来安装和更新一些特定的企业软件。由于各种原因,我想将已安装的版本(如果已安装)与我尝试安装的版本进行比较,但主要是为了能够在实际执行安装程序之前验证安装是否必要和允许。安装程序包和安装都包含一个 INI 文件,其中包含组件版本作为选项 ( component_name=version)。
Ansible 从远程节点上的某些 INI 文件中读取某些选项的正确方法是什么?据我所理解:
ini_file -module 用于修改目标文件,这不是我想要做的。我可以在这里看到两种可能性:
fetch-module 从远程节点获取文件到控制器机器,然后使用 ini 查找。command或shell-module,使用 grep/sed/awk 解析 INI 文件并注册输出。第一个选项似乎不必要地笨拙(尽管我确实意识到我可能会以错误的方式考虑它)。从另一个角度来看,第二个似乎有点笨拙(另一种 INI 文件解析方法),但我在这里也可能错了。现在我倾向于后者,但我不禁想到一定有一种更简单、更优雅的方式。
使用 CCACHE 时使用多个缓存目录或完全清除缓存的实际原因是什么?
Buildroot BR2_CCACHE 配置选项的帮助说明说:
请注意,当编译器以不兼容的方式更改时,Buildroot 不会尝试使缓存内容无效。因此,如果您更改编译器版本和/或配置,您有责任通过删除 $HOME/.buildroot-ccache 目录来清除 ccache 缓存。
如果我理解正确,CCACHE 会识别不同的编译器版本,并且缓存是基于每个编译器完成的。那么,描述所指的那些情况是什么?
此外,一些消息来源似乎建议应定期清除缓存。其他人指出缓存在达到“最大缓存大小”阈值时会自动清除。
显然,如果缓存的数据已损坏,那么您需要对其进行处理。是否有其他原因清除缓存?保留一个缓存没有意义吗?