更新 yum 软件包不会安装所需软件包的最低版本

更新 yum 软件包不会安装所需软件包的最低版本

安装pkg-a不会Requires: pkg-common >= 1.1.0更新pkg-common与版本相同的现有已安装包1.0.0

pkg-a 规格

Name:     pkg-a
Version:  2.3.4
Requires: pkg-common >= 1.1.0

pkg-common 规范

Name:     pkg-common
Version:  1.1.0

更新 pkg-a

> yum update pkg-a
=============================================================================================================================================================================================
 Package                                                      Arch                            Version                                     Repository                                    Size
=============================================================================================================================================================================================
Updating:
 pkg-a                                                        noarch                          2.3.4-1612802969                            my-repo                           22 k

Transaction Summary
=============================================================================================================================================================================================
Update  1 Package

请注意,没有列出“更新依赖项” pkg-common

检查依赖项pkg-a

> yum deplist pkg-a | grep common
  dependency: pkg-common >= 1.1.0
   provider: pkg-common.x86_64 1.1.0-1612802885.el7

检查可用的版本pkg-common,以确保:

> yum list --show-duplicates pkg-common
pkg-common.x86_64    1.0.0-1611685722.el7   my-repo 
... 
pkg-common.x86_64    1.0.0-1611985057.el7   my-repo
pkg-common.x86_64    1.1.0-1612802885.el7   my-repo 

> yum list installed pkg-common
pkg-common.x86_64    1.0.0-1611985057.el7   my-repo

关于以下项的附加(时代)信息pkg-common

# for old version 1.0.0
> rpm -qp --qf "%{epoch}:%{version}-%{release}" ./plk-common-1.0.0-1611985057.el7.x86_64.rpm
(none):1.0.0-1611985057.el7

# for new version 1.1.0
> rpm -q --qf "%{epoch}:%{version}-%{release}" pkg-common
(none):1.1.0-1612802885.el7

注意是pkg-common-1.1.0已知的。为什么在更新依赖包时没有安装它?

答案1

使用 Epoch时可能会发生这种情况pkg-common。这通常几乎是不可见的。请参阅:

$ rpm -q perl
perl-5.32.0-465.fc33.x86_64

$ rpm -q --qf "%{epoch}:%{version}-%{release}" perl
4:5.32.0-465.fc33

perl在我的机器上,Epoch 设置为4。并且 Epoch 总是胜过 version。请参阅:

$ rpmdev-vercmp 4:5.32.0 9.0.0
4:5.32.0 > 9.0.0

检查你的是否pkg-common已经设置了一些纪元,然后:

Requires: pkg-common >= X:1.1.0

X的纪元数是多少pkg-common

相关内容