服务器环境以及配置
【OS镜像版本】
银河麒麟高级服务器操作系统
Kylin-Server-10-SP1-Release-Build20-20210518-x86_64
现象描述
执行dnf install libtirpc-devel 命令,安装libtirpc-devel包时,遇到libtirpc-devel没有安装的问题,具体现象如下:
- 在安装了libtirpc-1.2.6-2.ky10,并仅有base源的情况下(注:base源中版本是libtirpc-1.2.6-2.ky10),执行dnf install libtirpc-devel和dnf install libtirpc-devel.x86_64,表现一致,能正常安装libtirpc-devel。
- 在安装了libtirpc-1.2.6-2.ky10,同时开启base源和updates源的情况下(注:updates源中版本是libtirpc-1.2.6-2.p02.ky10),执行dnf install libtirpc-devel,只会显示升级libtirpc至1.2.6-2.p02.ky10,rpm -qa libtirpc-devel发现,libtirpc-devel未安装。
- 在安装了libtirpc-1.2.6-2.p02.ky10的情况下,同时开启base源和updates源的情况下(注:updates源中版本是libtirpc-1.2.6-2.p02.ky10),dnf install libtirpc-devel会显示libtirpc-1.2.6-2.p02.ky10已经安装并结束。
- 在安装了libtirpc-1.2.6-2.p02.ky10的情况下,只开启updates源的情况下(注:updates源中版本是libtirpc-1.2.6-2.p02.ky10),dnf install libtirpc-devel能成功安装libtirpc-devel-1.2.6-2.p02.ky10。
综合以上现象,libtirpc包安装具有以下两类现象:
- 在只开启一个仓库源的时候,libtirpc-devel能正常安装。
- 在base和updates同时开启时,libtirpc-devel安装就会失败,libtirpc能正常安装成功。
现象分析
base源中的libtirpc包版本是1.2.6-2,updates源中的libtirpc包版本是1.2.6-2.p02;两个仓库中的版本不同影响了libtirpc-devel安装,libtirpc没有影响。
通过分析libtirpc包,libtirpc.spec中有如下设置:
以上配置会导致dnf在安装libtirpc-devel时,从base和updates源中发现有冲突版本,会导致libtirpc-devel的安装失败。
分析结果
因为base和updates两个源中存在不同的版本,libtirpc-devel版本之间的冲突检查,导致了同时开启base和updates源的情况下,dnf安装libtirpc-devel时失败。
解决方案
将libtirpc升级到1.2.6-4.ky10及以上版本,即可解决该问题。