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

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

本周我要更新一批机器,但我对我们既定的程序不太有信心。它基本上对每台机器的运行方式如下:

  1. 挂载特定于操作系统版本/位数的共享目录,即:mount -t cifs //server/share/rhel5.3-64/ /mnt/updates/
  2. yum update --downloadonly --downloaddir=/mnt/updates/
  3. yum update /mnt/updates/*.rpm

我们使用 mount 来减少所用的网络带宽,但由于每台机器安装的软件包集可能有很大差异,因此“update”命令中会包含系统中不存在的软件包,并且某些软件包会有多个旧版本。

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

编辑

在阅读了@aaron-copley 的回复后,我决定做一些测试。我登录到服务器,安装共享,运行yum update --downloadonly --downloaddir=/mnt/updates/,卸载共享,执行yum clean all,重新安装,然后重新运行命令。什么都没下载。[耶]

我删除了一个 rpm,再次运行该命令,只下载了那一个包。[也太好啦]

我把共享挂载到了另一个运行相同 RHEL 版本的机器上,yum update --downloadonly --downloaddir=/mnt/updates/然后运行,虽然它标记了 221 个需要下载的软件包,但它只下载了共享中尚未包含的 30 个软件包。[超级棒]

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

答案1

Yum 仅在与 一起使用时才会替换已安装的软件包update。不过您说得对,您可能没有下载其他系统所需的软件包。

您可以做的是使用类似 的工具mrepo来构建和维护所有 Red Hat 勘误表的本地存储库。该系统将同步到 RHN 并维护本地网络上的所有软件包。然后,每个系统都会在内部指向此主机以获取更新,以减少 WAN 带宽消耗。您也不必处理挂载,您可以通过 HTTP 使用 Yum。

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

答案2

Yum 仅安装较新版本的软件包。您可以使用createrepo软件包创建带有更新的存储库,并在配置文件 /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

顺便说一句,下一步要优化的是当 yum 尝试访问此文件夹时,使用带有 cifs 的 autofs 自动挂载 /mnt/updates/。

相关内容