我已经构建了一个具有以下版本的包:
kmod-dahdi-linux 10:2.9.1.1-75_shmz65.1.11.2.6.32_431.el6.i686
这应该是系统上安装的升级:
kmod-dahdi-linux 0:2.9.0.1-72_centos6.2.6.32_431.el6.i686
当我做 a 时,yum localupdate
我得到以下信息:
Resolving Dependencies
--> Running transaction check
---> Package kmod-dahdi-linux.i686 0:2.9.0.1-72_centos6.2.6.32_431.el6.i686 will be updated
---> Package kmod-dahdi-linux.i686 10:2.9.1.1-75_shmz65.1.11.2.6.32_431.el6.i686 will be an update
--> Finished Dependency Resolution
但是,当它进行事务检查时,我遇到文件冲突,就像它没有更新包,而是并排安装它一样,如下所示:
file /lib/modules/2.6.32-431.el6.i686/dahdi/dahdi.ko from install of kmod-dahdi-linux-10:2.9.1.1-75_shmz65.1.11.2.6.32_431.el6.i686.i686
conflicts with file from package kmod-dahdi-linux-2.9.0.1-72_centos6.2.6.32_431.el6.i686.i686
我尝试过旧版本的过时版本,我尝试过提高纪元(如你所见,我的纪元现在为 10)
当我做:
rpm -Uvh kmod-dahdi-linux-2.9.1.1-75_shmz65.1.11.2.6.32_431.el6.i686.i686.rpm
它可以正常升级。
我仔细检查了 rpm 版本显示为较新的版本:
# rpmdev-vercmp 0:2.9.0.1-72_centos6.2.6.32_431.el6.i686 10:2.9.1.1-75_shmz65.1.11.2.6.32_431.el6.i686
10:2.9.1.1-75_shmz65.1.11.2.6.32_431.el6.i686 is newer
有任何想法吗?
附加信息:
我已经重新调整了我的 RPM,使其具有完全相同的 dist 标签,但它仍然失败。
# yum localupdate kmod-dahdi-linux-2.9.1.1-11_centos6.2.6.32_431.el6.i686.i686.rpm
Resolving Dependencies
--> Running transaction check
---> Package kmod-dahdi-linux.i686 0:2.9.0.1-72_centos6.2.6.32_431.el6.i686 will be updated
---> Package kmod-dahdi-linux.i686 0:2.9.1.1-11_centos6.2.6.32_431.el6.i686 will be an update
--> Finished Dependency Resolution
Transaction Check Error:
file /lib/modules/2.6.32-431.el6.i686/dahdi/dahdi.ko from install of kmod-dahdi-linux-2.9.1.1-11_centos6.2.6.32_431.el6.i686.i686 conflicts with file from package kmod-dahdi-linux-2.9.0.1-72_centos6.2.6.32_431.el6.i686.i686
答案1
Yum 有这个installonlypkg
:s 指令,它所做的不是升级软件包,而是安装,以便可以同时安装同一软件包的两个不同版本。
这对于内核包很有用,这通常是默认设置,因此它可以让您回退到以前的内核,以防升级时出现错误。 (来自 RHEL6 部署指南):
installonlypkgs=以空格分隔的软件包列表 您可以在此处提供以空格分隔的软件包列表,yum 可以安装这些软件包,但永远不会更新这些软件包。有关默认情况下仅安装的软件包列表,请参阅 yum.conf(5) 手册页。
关于内核包的主题:
[...] 特别是,内核软件包应始终列在 installonlypkgs 中(默认情况下如此),
对于 kmod 软件包的情况,请查看注释这个bz为什么 kmod 软件包受此影响。这是针对保险丝的,但同样的逻辑也适用于您的转速:
% rpm -qp --提供 kmod-fuse-2.7.4-21.el5.i686.rpm 内核模块 = 2.6.18-128.1.10.el5 fusion-kmod = 2.7.4-21.el5 modalias(char-主要-10-229)
kmod-fuse = 2.7.4-21.el5...并且 kernel-modules 位于 installonlypkgs 列表中,因此 yum 正在执行它所告知的操作。