Debian的apt-get update会获取并更新软件包索引。因为我已经习惯了这种处理方式,所以惊讶地发现yum update可以完成所有工作并升级系统。这让我很好奇如何在不安装任何内容的情况下更新包索引。

#1 楼

check-update命令将刷新软件包索引并检查可用更新:

yum check-update


评论


此命令使您可以确定是否有任何更新可用于已安装的软件包。 yum返回所有存储库中所有软件包更新的列表(如果有)。 apt-get更新刷新索引文件,但yum check-update没有。

– SuB
17-4-15在10:56



如果yum最近已经运行过,这将不起作用,请参阅其他一些答案来替代...

–rogerdpack
17年6月21日在21:59



#2 楼

虽然yum check-update会检查已安装软件包的更新,但是否需要刷新,大多数其他命令也会更新。

严格等同于apt-get update的命令是yum makecache ...但是通常不建议运行直接在yum中。

评论


我不明白第一句话。你可以改写吗?

– tshepang
2011年2月8日在18:06

这意味着其他yum命令,例如必要时,yum upgrade将自动运行yum check-update。换句话说,yum升级与apt-get更新基本相同。 apt-get升级。

– Mikel
2011年2月8日在21:02

谢谢!百胜检查更新不能帮助我针对404错误。但是,yum makecache可以帮助您!非常感谢!

–套接字对
2014年6月6日11:41

最初是关于自动更新仓库数据以显示最新信息(apt-get没做,或者至少在2011年没做)。编辑后,它现在变得有点奇怪了:(。

–詹姆斯·安提尔(James Antill)
17年4月19日在16:23

为什么不建议运行yum makecache?它在手册页中列出,似乎可以像apt-get update一样工作...还请注意,yum check-update并不总是执行刷新,请参见其他答案,FWIW :)

–rogerdpack
19年6月7日在16:23



#3 楼

不幸的是,默认情况下,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


,这意味着check-update未执行更新,像apt-get update一样。

通过运行以下命令,您可以查看执行所有命令在下面执行的“自动刷新”之前需要花费多长时间:yum repolist enabled -v

解决方法:

首先使用yum clean expire-cache(或yum clean all),然后任何将来的yum命令都会“在运行时”自动刷新缓存。 。因为将来的yum命令会刷新缓存,所以实际上与apt-get update相同。

,或者我想将yum.conf的metas_expire参数更改为小于默认值90min。

或运行yum makecache(从其他答案中),这似乎删除了缓存并立即拉出了新副本。但这似乎要比Q4312079q(?)FWIW花的时间更长。

评论


不知道为什么这个答案在底部没有效果。这似乎是显而易见且简单的答案。

–cbmanica
18年8月27日在22:46

#4 楼

这是用于更新本地缓存的命令,因此,根据使用Yum缓存,

yum makecache


似乎是您要查找的命令。

通常,您不需要直接运行此命令,因为yum已经根据yum.conf中的metadata_expire值检查并刷新了元数据,默认值为6个小时。

但是,Ansible剧本中可能至少有一个用例,因为Ansible剧本中没有办法只更新缓存而不安装任何软件包(请参阅Ansible问题33461和40068,似乎已在2.8、46183版本中修复)。 Ansible yum模块要求“ update_cache:yes”选项的软件包名称有效。因此,可以在剧本中使用“命令:yum makecache”作为替代。

dnf还具有makecache命令,尽管也可以使用--refresh开关强制进行元数据同步。

评论


这个已有的答案已经提到了yum makecache。也许您可以扩展答案以使其更有用,例如,通过解释为什么不推荐使用yum makecache或等效的dnf。

–斯蒂芬·基特(Stephen Kitt)
19年5月3日在13:39