tsh*_*ang 122 yum apt package-management
Debianapt-get update获取并更新包索引。因为我已经习惯了这种做事方式,所以我惊讶地发现它可以yum update完成所有这些并升级系统。这让我很好奇如何在不安装任何东西的情况下更新包索引。
wag*_*wag 113
该check-update命令将刷新包索引并检查可用更新:
yum check-update
Run Code Online (Sandbox Code Playgroud)
Jam*_*ill 43
虽然yum check-update将检查已安装软件包的更新,如果需要刷新,大多数其他命令也会如此。
严格等同于的命令apt-get update是yum makecache...但是通常不建议在 yum 中直接运行该命令。
rog*_*ack 29
不幸的是yum check-update,默认情况下不会从远程存储库中提取更改,直到yum.conf的 metadata_expire 参数过去(默认为 90m)。显然它的目的是“知道你的机器是否有任何需要应用的更新,而无需交互运行”所以基本上它是“检查是否有任何包可以更新”而不是“刷新我可以更新的包列表”作为你会期待。
所以如果你运行yum check-update并得到这个:
$ sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
packagename version repo
Run Code Online (Sandbox Code Playgroud)
这意味着 check-update不会像apt-get update那样执行更新。
您可以通过运行以下命令查看在执行所有命令在下面执行的“自动刷新”之前需要多长时间:yum repolist enabled -v
解决:
首先使用 yum clean expire-cache(或yum clean all),然后任何未来的 yum 命令将在“运行时”自动刷新缓存。. 因为以后的 yum 命令会刷新缓存,这在实践中与apt-get update.
或者将 yum.conf 的 metadata_expire 参数更改为小于默认的 90 分钟,我猜。
或者运行yum makecache(从其他答案中)它似乎删除了缓存并立即拉下新的副本。但它似乎比clean xxxFWIW需要更长的时间(?)
这是更新本地缓存的命令,因此
yum makecache
Run Code Online (Sandbox Code Playgroud)
根据使用 Yum 缓存,似乎是您正在寻找的命令。
通常您不需要直接运行此命令,因为 yum 已经根据 yum.conf 中的metadata_expire 值检查并刷新元数据,默认值为 6 小时。
然而,可能至少有一个用例,在 Ansible playbook 中,因为在 Ansible playbook 中没有一种方法可以只更新缓存而不安装任何包(请参阅 Ansible issues 33461和40068,这似乎在版本 2.8, 46183中修复)。Ansible yum 模块需要“update_cache: yes”选项的包名称才能生效。因此,作为替代方案,可以在剧本中使用“命令:yum makecache”。
dnf 还有一个 makecache 命令,尽管也可以使用 --refresh 开关强制元数据同步。
| 归档时间: |
|
| 查看次数: |
119867 次 |
| 最近记录: |