我们有两个RPM软件包,都是内部开发的:
软件包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将
这个期望正确吗?
如果这种期望是正确的,那么在我们的案例中,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/