dr_*_*dr_ 7 yum rhel cache redhat-satellite
我有一台由 Satellite 6.5 管理的 RHEL7 服务器。
命令
yum clean all --verbose
Run Code Online (Sandbox Code Playgroud)
为未跟踪的存储库显示了几个 Mb 的 yum 缓存。
yum clean all
不清理这个缓存。是否有可能这样做,或者唯一的方法是运行rm -rf /var/cache/yum/* && yum check-update
?
Edw*_*ard 11
yum clean all
过去对工作进行了一些改进(最显着的是https://bugzilla.redhat.com/show_bug.cgi?id=1357083)但是您绝对正确,有些边缘情况yum clean all
只是不这样做工作得当。
rm -rf /var/cache/yum
,尽管很讨厌,但每次都能成功。
手册页有一条关于清理未跟踪存储库的简短消息:
<...> 另请注意,未跟踪(不再配置)的存储库不会自动清理。
和
要一次性清除整个缓存,最简单的方法是手动删除文件。根据您的 cachedir 配置,这通常意味着将任何变量视为 shell 通配符并递归删除匹配的目录。例如,如果您的 cachedir 是 /var/cache/yum/$basearch/$releasever,则必须删除整个 /var/cache/yum 目录。如果这样做,yum 将在下次运行时根据需要重建缓存(这可能需要一段时间)。
关于重建需要很长时间的最后一点,您可能希望按照rm -rf /var/cache/yum
with&& yum makecache
正确重新创建目录并避免下一次 yum 调用的长时间等待。请注意 和 之间的区别makecache
,makecache fast
但大多数人并不真正了解其中的区别。yum makecache fast
只确保回购是最新的。yum makecache
实际上下载元数据。
还有另一种选择:
# yum --enablerepo='*' --verbose clean all
Run Code Online (Sandbox Code Playgroud)
这里解释一下:
# man yum
...
CLEAN OPTIONS
The following are the ways which you can invoke yum in clean mode.
Note that "all files" in the commands below means "all files in currently
enabled repositories". If you want to also clean any (temporarily)
disabled repositories you need to use --enablerepo='*' option.
Run Code Online (Sandbox Code Playgroud)
但是已删除存储库的缓存(这意味着“未跟踪”)将保留:
Disk usage under /var/cache/yum/*/* after cleanup:
4.0 k enabled repos:
0 disabled repos
145 M untracked repos
Run Code Online (Sandbox Code Playgroud)