2013-05-15 6 views
1

J'ai un paquet rpm d'assistant qui est utilisé pour installer les dépendances nécessaires pour que certains logiciels fonctionnent; le problème est que les paquets de dépendances requis sont ceux de 32 bits, qui ne peuvent pas être installés sur CentOS 64bit sans l'indicateur --setopt=protected_multilib=false.CentOS 64bit RPM avec des dépendances 32 bits

Pour installer manuellement les dépendances que je venais de courir:

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

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

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

Ce installerait correctement la version 32 bits des packages.

Le problème apparaît lors de l'installation du package d'assistance directement, car il semble qu'il n'y ait aucun moyen de forcer --setopt = protected_multilib = false pour les dépendances.

Lorsque vous essayez d'installer le paquet (localement, en utilisant yum --nogpgcheck --setopt=protected_multilib=false localinstall centos_helper-0-0.x86_64.rpm) Je reçois l'erreur suivante:

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 

C'est la même erreur que je reçois en essayant d'installer les dépendances à la main sans protected_multilib = false drapeau .

Le fichier .spec J'utilise pour créer le package a le contenu suivant:

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 

Toute façon d'avoir les dépendances installer correctement?

Répondre

0

Vous voudrez peut-être regarder http://www.rpm.org/wiki/PackagerDocs/ArchDependencies Je préfère référencer moi-même les sons, de cette façon miam va chercher quelle dépendance installer. J'ai eu des mises à jour majeures de CentOS échouant parce que si ceci.

Ceci si pour les versions récentes de RPM seulement: 4.6 ou plus. Si vous êtes sur quelque chose plus:

Nécessite: réel soname.so.1() (64bit), soname.so.1-réel, packagename

De mémoire, vous pourriez avoir besoin d'un coup sec.

+0

L'utilisation de so est la solution la plus élégante à cela, mais j'espérais éviter d'avoir à maintenir cette liste car elle est assez longue; C'est la raison pour laquelle je suis allé avec des paquets, car certains paquets contiennent beaucoup de ce qui est nécessaire. Mais je vais faire un test de marquage des bibliothèques en tant que dépendances au lieu de paquets. –

Questions connexes