我可以使用 来清除缓存yum clean all
,或者更快地使用 来清除缓存yum clean expire-cache
。
但是,在没有实际清除缓存的情况下,我只是想知道缓存何时会自行过期。
我如何知道 yum 的元数据何时过期?
我使用 CFEngine自愈基础设施所以应该安装在我正在处理的服务器上的软件包,将要yum clean expire-cache
运行后不久即可安装。我已经测试过这个。如果我可以检查我的其中一台服务器上的元数据过期时间没有继续运行yum clean expire-cache
,我会对这些服务器何时能够自我修复有所了解。
答案1
yum repolist enabled -v
包含此信息(配置的metadata_expire和最后一次元数据更新时间)和漂亮的输出。
[root@localhost ~]# yum repolist enabled -v | grep 'Repo-name\|expire'
Repo-name : CentOS-7 - Base
Repo-expire : 21,600 second(s) (last: Wed Mar 8 19:01:59 2017)
Repo-name : CentOS-7 - Extras
Repo-expire : 21,600 second(s) (last: Wed Mar 8 19:02:00 2017)
Repo-name : CentOS-7 - Updates
Repo-expire : 21,600 second(s) (last: Wed Mar 8 19:02:01 2017)
检查cachecookie上的修改时间是获取最后元数据更新时间的另一种方法。这执行得非常快,但 yum 缓存路径在发行版/专业之间可能不一致。
[root@localhost ~]# stat -c %y /var/cache/yum/x86_64/7/base/cachecookie
2017-03-08 19:01:59.650838052 +0000
答案2
它记录在手册页中yum.conf
:
metadata_expire
元数据过期的时间(以秒为单位)。因此,如果当前下载的元数据少于这么多秒,那么 yum 将不会根据存储库更新元数据。如果您发现 yum 没有像您希望的那样经常下载更新信息,请降低此选项的值。您还可以通过附加一个从默认使用秒更改为使用天、小时或分钟d
,h
或者m
分别。默认为 6 小时, 到赞扬yum-updatesd
每小时运行一次。也可以使用“从不”这个词,这意味着元数据永远不会过期。请注意,使用 metalink 文件时,由于验证原因,metalink 必须始终比存储库的元数据更新,因此此超时也适用于 metalink 文件。
(拼写错误在手册页中:无需在此处更正)。