我们有两个RPM软件包,都是内部开发的:

  • wm-billing-scrooge和
  • wm-log-shipper

  • 软件包wm-billing-scrooge需要wm-log-shipper:
    require: wm-log-shipper (in *wm-billing-scrooge* spec file)
    

    现在,我们解决了wm-log-shipper中的问题,并希望确保每当在计算机上更新wm-billing-scrooge时,我们也将wm-log-shipper至少更新到所需的版本。因此,我们将require子句更改为
    require: wm-log-shipper >= 4.50.0
    

    现在,我的期望是每当我做一个
    yum update wm-billing-scrooge
    

    在装有旧版wm-log-shipper的计算机上,yum将
  • 认识到要安装的wm-billing-scrooge版本取决于比已安装的wm-log-shipper版本新的wm-log-shipper版本,以及
  • 也将更新wm-log-shipper。

  • 这个期望正确吗?

    如果这种期望是正确的,那么在我们的案例中,yum无法升级wm-log-shipper的原因可能是什么?

    这里有一个shell session ,它有望说明这个问题:
    devwulf-smsplus-billing1:~# yum list installed wm-log-shipper
    Loaded plugins: security
    office-wm-software-development                                                                                                                                                           | 2.7 kB     00:00
    office-wm-software-development/primary_db                                                                                                                                                | 890 kB     00:00
    wm-software                                                                                                                                                                              | 2.7 kB     00:00
    wm-software/primary_db                                                                                                                                                                   | 890 kB     00:00
    Installed Packages
    wm-log-shipper.x86_64                                                       4.46.0-INTEGRATION_S46_SNAPSHOT20140128084356                                                        @office-wm-software-development
    devwulf-smsplus-billing1:~# repoquery --requires wm-billing-scrooge
    /bin/sh
    jpackage-utils
    runtime-env-init-functions
    wm-log-shipper >= 4.50.0
    devwulf-smsplus-billing1:~# yum list installed wm-log-shipper
    Loaded plugins: security
    office-wm-software-development                                                                                                                                                           | 2.7 kB     00:00
    wm-software                                                                                                                                                                              | 2.7 kB     00:00
    Installed Packages
    wm-log-shipper.x86_64                                                       4.46.0-INTEGRATION_S46_SNAPSHOT20140128084356                                                        @office-wm-software-development
    devwulf-smsplus-billing1:~# rpmdev-vercmp 4.50.0 4.46.0-INTEGRATION_S46_SNAPSHOT20140128084356
    0:4.50.0-None is newer
    devwulf-smsplus-billing1:~# yum update -d 10 wm-billing-scrooge
    Loading "security" plugin
    Running "config" handler for "security" plugin
    Config time: 0.037
    Yum Version: 3.2.29
    COMMAND: yum update -d 10 wm-billing-scrooge
    Installroot: /
    Ext Commands:
    
       wm-billing-scrooge
    Setting up Package Sacks
    office-wm-software-development
    wm-software                                                                                                                                                                              | 2.7 kB     00:00
    Running "exclude" handler for "security" plugin
    pkgsack time: 0.340
    Reading Local RPMDB
    rpmdb time: 0.001
    Setting up Update Process
    Building updates object
    up:Obs Init time: 0.263
    putting perl-version in simple update
    ....
    processing nss-util
    up:simple updates time: 0.033
    up:obs time: 0.005
    up:condense time: 0.000
    updates time: 0.632
    Not Updating Package that is already updated: wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818
    Not Updating Package that is already updated: wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818
    Resolving Dependencies
    Running "preresolve" handler for "security" plugin
    --> Running transaction check
    ---> Package wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818 will be updated
    Checking deps for wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140519150818 - ud
    ---> Package wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140521105707 will be an update
    Checking deps for wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140521105707 - u
    looking for ('wm-log-shipper', 'GE', ('0', '4.50.0', None)) as a requirement of wm-billing-scrooge.x86_64 0:4.54.0-SNAPSHOT20140521105707 - u
    --> Finished Dependency Resolution
    Dependency Process ending
    Depsolve time: 0.815
    
    Dependencies Resolved
    
    ================================================================================================================================================================================================================
     Package                                        Arch                               Version                                                     Repository                                                  Size
    ================================================================================================================================================================================================================
    Updating:
     wm-billing-scrooge                             x86_64                             4.54.0-SNAPSHOT20140521105707                               office-wm-software-development                              21 M
    
    Transaction Summary
    ================================================================================================================================================================================================================
    Upgrade       1 Package(s)
    
    Total download size: 21 M
    Is this ok [y/N]: N
    Exiting on user Command
    devwulf-smsplus-billing1:~#
    

    有任何想法吗?

    Thx,奥拉夫

    最佳答案

    require: wm-log-shipper >= 4.50.0
    

    是错的。

    它应显示为:
    Requires: wm-log-shipper >= 4.50.0
    

    根据rpmbuild版本的不同,您可能需要运行以下命令:
    AutoReq:        no
    

    较新版本的rpmbuild会自动计算需求。
    在没有“Autoreq:no”标志的情况下运行时,应在rpmbuild输出中注意对rpm的要求。然后将它们手动添加到“Required:”标志。

    关于rpm - yum update不会将依赖项更新为所需的最低版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23786391/

    10-12 13:09