重建的 kmod 软件包不通过“YUM”更新,而是通过“rpm”更新

重建的 kmod 软件包不通过“YUM”更新,而是通过“rpm”更新

我已经构建了一个具有以下版本的包:

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 正在执行它所告知的操作。

相关内容