使用localinstall更新yum包

问题描述 投票:1回答:1

如果使用yum localinstall安装的软件包如下:

yum -y localinstall --nogpgcheck some-package-1.0.0.rpm

现在,如果我跑:

yum -y localinstall --nogpgcheck some-package-2.0.0.rpm

它会用新版本完全替换旧版本还是保留两个版本?

linux redhat yum rhel
1个回答
2
投票

答案是,这取决于some-package的包装方式。一般来说,与.rpms一起包装的大多数foo-version-release.rpm都被与foo和/或version++相同的包装release++淘汰。

看看你的some-package,如果你想运行yum localinstall some-package-2.0.0.rpm(注意,不是用-y),那么你会看到来自yum的消息,如下所示:

Resolving Dependencies
--> Running transaction check
---> Package foo.x86_64 0:1.0.0 will be updated
---> Package foo.x86_64 0:2.0.0 will be an update

这告诉yum将更新包并删除旧包。 yum解决了这些依赖关系,而rpm -ivh不会这样做。

现在,有一些特殊情况,例如kernel,它将与旧版本并排安装在系统上,除非您手动调用rpm -Uvh kernel*.rpm命令。

yum localinstall的等效命令将是双重的,

# This will fail if some-2.0.0 is designed to obsolete some-1.0.0
$ rpm -ivh --test some-2.0.0.rpm  

而后续会成功:

$ rpm -Uvh --test some-2.0.0.rpm  

注意,我正在使用--test进行干运行。需要将其删除才能进行实际安装。

© www.soinside.com 2019 - 2024. All rights reserved.