本周我有一批机器进行更新,但对于我们既定的程序,我还不太确定。 它基本上像每台机器一样运行:
mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/ yum update --downloadonly --downloaddir=/mnt/updates/ 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尝试访问此文件夹。