Linux 中软件包的版本控制 - Red Hat Enterprise linux

Linux 中软件包的版本控制 - Red Hat Enterprise linux

我们在典型的 3 层环境中拥有 RHEL - 红帽企业 Linux 服务器 (VM),即沙箱/开发、质量和产品。在 2018 年初服务器的初始构建期间,我从头开始创建了 Sandbox/Dev VM,更新了所有包 (yum-update),然后从此 VM 创建了一个模板。我使用相同的模板来创建质量和产品虚拟机,只是更改了主机名和 IP 地址等。因此所有虚拟机都是相同的。

最近,我在 Sandbox/Dev 上将操作系统从 Rhel 7.4 升级到 7.5,然后运行 ​​(yum update) 来更新软件包。最终用户正在对该系统上运行的应用程序进行测试。

几周后我将在质量服务器上执行操作系统升级,下个月在生产服务器上执行操作系统升级。现在我的问题是,如何在质量和生产服务器上维护相同版本的软件包。

例如:libstdc++-4.8.5-28.el7_5.1.x86_644.8.5-28运行 yum-update 后。即使有新版本(假设有 4.8.6),我如何获得相同的质量和生产版本。如何为我的系统上安装的所有软件包获取此信息?我的意思是我希望所有 3 个服务器中的所有软件包都处于同一版本。

请帮忙和建议。

问候,

西德

答案1

为了避免这种情况,在定义您的本机 REPO 后,您可以从 yum 更新中的更新中排除相关包。

首先我们进入REPO目录:

vi /etc/yum.repos.d/

然后我们创建一个新的 REPO:

vi local.repo in
[Local Repo Name]
name=Local Repo
baseurl=http:// or file://rpm.path
enabled=1
gpgcheck=0

缓存操作

yum clean all #Delete the entire repo cache.
yum makecache #Make the new repo cache

到目前为止,我们已经做出了必要的定义来更新到我们想要的版本。现在Redhat在更新各自的包时,会首先查看这里的定义。但是,如果此处的更新包在公共 REPO 中可用,它们将继续更新。为了防止这种情况发生,请做出如下安排:

vi /etc/yum.conf in
exclude=packagename* #libstdc* etc...

从现在开始,我们的软件包将保持我们想要的最新版本。也可以在内核更新时进行此应用,可以防止内核更新后出现稳定性问题。

相关内容