2013-05-15 70 views
1

我有一个帮助程序rpm包,用于安装必要的依赖项以使某些软件能够正常工作;问题是所需的依赖包是32位的,不能在没有--setopt=protected_multilib=false标志的情况下安装在CentOS 64位上。与32位依赖关系的CentOS 64位RPM

要手动安装我刚刚运行的依赖关系:

# yum install --setopt=protected_multilib=false libXrandr.i686

# yum install --setopt=protected_multilib=false gtk2.i686

# yum install --setopt=protected_multilib=false libXtst.i686

这将正确安装的软件包的32位版本。

直接安装帮助程序包时会出现问题,因为似乎无法为依赖项强制--setopt = protected_multilib = false。

当试图安装包(本地,使用yum --nogpgcheck --setopt=protected_multilib=false localinstall centos_helper-0-0.x86_64.rpm)我得到以下错误:

Examining centos_helper-0-0.x86_64.rpm: centos_helper-0-0.x86_64 
Marking centos_helper-0-0.x86_64.rpm to be installed 
Loading mirror speeds from cached hostfile 
* base: mirror.dattobackup.com 
* extras: mirror.metrocast.net 
* rpmforge: mirror.de.leaseweb.net 
* updates: mirror.dattobackup.com 
Resolving Dependencies 
--> Running transaction check 
---> Package centos_helper.x86_64 0:0-0 will be installed 
--> Processing Dependency: libXrandr.i686 for package: centos_helper-0-0.x86_64 
--> Processing Dependency: gtk2.i686 for package: centos_helper-0-0.x86_64 
--> Processing Dependency: libXtst.i686 for package: centos_helper-0-0.x86_64 
--> Finished Dependency Resolution 
Error: Package: centos_helper-0-0.x86_64 (/centos_helper-0-0.x86_64) 
      Requires: gtk2.i686 
Error: Package: centos_helper-0-0.x86_64 (/centos_helper-0-0.x86_64) 
      Requires: libXrandr.i686 
Error: Package: centos_helper-0-0.x86_64 (/centos_helper-0-0.x86_64) 
      Requires: libXtst.i686 
You could try using --skip-broken to work around the problem 
You could try running: rpm -Va --nofiles --nodigest 

这是同样的错误尝试安装手动的依赖关系,而不protected_multilib当我得到=假标志。

我使用创建包代表.spec文件具有以下内容:

Summary: CentOS helper file 
Name: centos_helper 
Version: 0 
Release: 0 
License: Public 
Group: Applications/System 
Requires: libXrandr.i686,gtk2.i686,libXtst.i686 
%description 
Installer CentOS helper package 
%files 

任何方式都依赖安装是否正确?

回答

0

你可能想看看http://www.rpm.org/wiki/PackagerDocs/ArchDependencies 我更喜欢自己引用sonames,这样yum会查找依赖性安装。 我有主要的CentOS升级失败,因为如果这。

如果仅适用于最新的RPM版本:4.6左右。如果你对旧的东西:

要求:真实soname.so.1()(64位),实时soname.so.1,软件包名

从内存中,你可能需要一个调整。

+0

使用so是更优雅的解决方案,但我希望避免必须维护该列表,因为它很长;这就是为什么我带着包去的原因,因为有些包包含很多需要的东西。 但我会做一个测试标记库作为依赖而不是包。 –