Debianapt-get update
获取并更新包索引。因为我习惯了这种做事方式,所以我惊讶地发现这yum update
一切都做到了和升级系统。这让我很好奇如何在不安装任何东西的情况下更新包索引。
答案1
该check-update
命令将刷新包索引并检查可用更新:
yum check-update
答案2
虽然yum check-update
将检查已安装软件包的更新,如果需要刷新,大多数其他命令也将如此。
严格相当于apt-get update
is yum makecache
... 的命令,但通常不建议在 yum 中直接运行该命令。
答案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
这意味着检查更新是不是执行更新,就像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 xxx
FWIW 需要更长的时间(?)
答案4
我使用的是 Centos Stream 9,拉取和更新的简单命令是:
yum update
该命令会提取所有应用程序更新并自动安装,它还会检查可用的操作系统更新并尝试更新它,但它会在尝试安装操作系统和内核更新时停止,以在继续之前请求确认,因此,您只需输入 即可允许它进行操作系统安装Yes
。
Redhat CentOS 终端中的 Centos9 Stream 9 似乎使事情变得更容易。