web-dev-qa-db-fra.com

Résolution de dépendance échoue sur la bibliothèque installée

J'essaie d'installer un RPM et obtenir l'erreur suivante:

---> Package geramer-server.x86_64 0:3.6.0.117-1 will be an update
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: geramer-server-3.6.0.117-1.x86_64
---> Package geramer-ui.x86_64 0:3.6.0.98-1 will be updated
---> Package geramer-ui.x86_64 0:3.6.0.117-1 will be an update
--> Finished Dependency Resolution
Error: Package: geramer-server-3.6.0.117-1.x86_64 (/geramer-server-3.6.0.117.x86_64)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)

Ma première pensée a été que libcrypto.so n’est pas installé. Mais ce n'est pas le cas, voir:

$ ldconfig -p | grep libcrypto.so
    libcrypto.so.10 (libc6,x86-64) => /usr/lib64/libcrypto.so.10

Il existe aussi sur le disque:

$ ls -l /usr/lib64/libcrypto.so.10
lrwxrwxrwx 1 root root 18 Dec  4 13:11 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.0

Et aussi RPM le sait:

$ yum whatprovides "*/libcrypto.so.10"
Loaded plugins: product-id, rhnplugin, subscription-manager
*Note* Red Hat Network repositories are not listed below. You must run this command as root to access RHN repositories.
openssl-1.0.0-25.el6_3.1.x86_64 : A general purpose cryptography library with TLS implementation
Repo        : installed
Matched from:
Filename    : /usr/lib64/libcrypto.so.10

Donc, des idées ce qui me manque?

Cordialement, Andi

8
Andi

Les dépendances ont des noms de modules, listés entre parenthèses pour éviter les collisions entre les packages. Cependant, openssl dans RHEL ou openssl-libs sur Fedora fournissent à libcrypto.so.10 quatre noms de module différents pour deux architectures:

$ rpm -q --provides openssl-libs | grep libcrypto.so.10
libcrypto.so.10()(64bit)
libcrypto.so.10(OPENSSL_1.0.1)(64bit)
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
libcrypto.so.10
libcrypto.so.10(OPENSSL_1.0.1)
libcrypto.so.10(OPENSSL_1.0.1_EC)
libcrypto.so.10(libcrypto.so.10)

Cela semble être le cas pour CentOS too , basé sur RHEL.

Dans votre cas, openssl semble ne fournir que libcrypto.so.10 sans nom de module, ce qui laisse croire à geramer-server que la dépendance est manquante car elle nécessite libcrypto.so.10 du module libcrypto.so.10.

6
divanov

Je sais que ce fil est un peu vieux, mais j'ai rencontré ce problème récemment et je voulais partager ce que j'ai fait pour le résoudre, en particulier depuis que la réponse de @ divanov m'a aidé à résoudre le problème.

Dans mon cas, je ne pouvais pas installer un RPM postgres particulier (postgresql91) et je voyais la même erreur:

Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64 (/postgresql91-libs-9.1.12-1PGDG.rhel6.x86_64)
           Requires: libssl.so.10(libssl.so.10)(64bit)

Fondamentalement, j'ai pu résoudre le problème en mettant à niveau la version de openssl installée. Au moment de la rédaction de cet article, openssl-1.0.1e-15 est disponible dans le référentiel CentOS (6), ici: openssl-1.0.1e-15.el6.x86_64.rpm et fournit les dépendances libssl et libcrypto qui manquaient auparavant.
Pour installer, vous pouvez: 

Sudo yum install http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-15.el6.x86_64.rpm

De nouveau, si la version du référentiel CentOS change, cette URL risque de ne plus être valide.

Ok, maintenant pour les détails sanglants ...

À l'origine, ma machine avait openssl-1.0.0-27.el6_4.2.x86_64.rpm installée, ce qui ne fournissait pas tous les paquetages requis par mon postgres rpm:

> rpm -q --provides openssl
config(openssl) = 1.0.0-27.el6_4.2
...
libcrypto.so.10()(64bit)
...  
libssl.so.10()(64bit)  
...

Après avoir installé la nouvelle version de openssl:

> rpm -q --provides openssl
config(openssl) = 1.0.1e-16.el6_5.4
...
libcrypto.so.10()(64bit)  
libcrypto.so.10(OPENSSL_1.0.1)(64bit)  
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)  
libcrypto.so.10(libcrypto.so.10)(64bit)  
...
libssl.so.10()(64bit)  
libssl.so.10(OPENSSL_1.0.1)(64bit)  
libssl.so.10(OPENSSL_1.0.1_EC)(64bit)  
libssl.so.10(libssl.so.10)(64bit)  
...

Et tous sont heureux maintenant ...

En bout de ligne, installez une version plus récente d’openssl qui devrait fournir les dépendances dont vous avez besoin. Bonne chance!

9
scott

Essayez d'installer openssl et openssl-libs simultanément avec la commande suivante pour RHEL7 ou CentOS 7:

Sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-1.0.2k-8.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-8.el7.x86_64.rpm

Opensl et openssl-libs se nécessitant mutuellement, car des dépendances et une exécution sans Sudo peuvent entraîner des conflits avec les versions antérieures.

1
KUMAR MAYANK

J'ai pu résoudre ce problème en supprimant openssl de la ligne d'exclusion dans /etc/yum.conf. Nous avons des serveurs gérés, il a donc été placé par défaut. J'ai ensuite juste lancé une installation normale de ce dont j'avais besoin et tout s'est bien passé.

1
Jordan

J'ai utilisé yumdownloader pour créer une copie locale du rpm openssl. Ensuite, j'ai utilisé rpmrebuild avec les drapeaux -e -p PACKAGE pour ajouter la Provides manquante et créer un nouveau rpm. Puis installé cet artefact résultant. Incrémenter la Release a également aidé.

0
Toddius Zho

Téléchargez le paquetage rpm approprié à partir de ce link .

Pour être précis,

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-libs-1.0.2k-16.el7.x86_64.rpm
rpm -ivh openssl-libs-1.0.2k-16.el7.x86_64.rpm --force

Et puis yum install votre paquet encore.

0
MeadowMuffins
0
하늘치