“yum update ./*.rpm”的潜在问题?

本周我有一批机器进行更新,但对于我们既定的程序,我还不太确定。 它基本上像每台机器一样运行:

  1. 安装一个特定于OS版本/位的共享目录,即: mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/
  2. yum update --downloadonly --downloaddir=/mnt/updates/
  3. yum update /mnt/updates/*.rpm

我们使用安装来减less我们使用的networking带宽的数量,但是由于每台计算机可能安装了非常不同的软件包集合,因此“update”命令中将包含甚至不存在于系统中的软件包,以及那里是某些软件包的多个旧版本。

这是一个问题吗? 在申请更改之前,yum会跳过/删除任何不必要/过时的软件包吗?

编辑

在阅读@ aaron-copley的回答之后,我决定做一些testing。 我login到服务器,装载共享,运行yum update --downloadonly --downloaddir=/mnt/updates/ ,卸载共享,做了一个yum clean all ,重新安装,并重新运行的命令。 没有下载。 [好极了]

我删除了一个rpm,再次运行这个命令,只下载了一个包。 [也是]

我把这个共享挂载在另一个运行相同RHEL版本的机器上,运行了yum update --downloadonly --downloaddir=/mnt/updates/ ,尽pipe它被标记为下载的软件包,但它只下载了那些尚未分享。 [超级耶]

作为奖励,yum还列出了已经以粗体下载的软件包。

百胜只会在update使用时更换已安装的软件包。 您是正确的,但您可能不会下载其他系统所需的软件包。

你可以做的是使用像mrepo这样的工具来build立和维护所有红帽勘误表的本地存储库。 这个系统将被同步到RHN并且维护本地networking上的所有包。 每个系统然后在内部指向该主机以进行更新以减lessWAN带宽消耗。 你也不必乱用挂载,你可以使用Yum over HTTP。

mrepo:Yum / Apt存储库镜像(fka yam)

百胜只安装较新版本的软件包。 您可以使用createrepo软件包来创build具有更新的存储库,并使用内容填充configuration文件/etc/yum.repos.d/company-updates.repo:

 [rhel-company-updates] name=RHEL-company-updates baseurl=file:///mnt/updates/ gpgcheck=0 enabled=1 

该程序简化了:

 # mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/ # yum update 

顺便说一句,下一步优化是使用autofs与cifs automount / mnt / updates /当yum尝试访问此文件夹。