it-swarm.com.de

Abhängigkeitsauflösung schlägt in installierter Bibliothek fehl

Ich versuche eine Drehzahl zu installieren und erhalte folgende Fehlermeldung:

---> 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)

Mein erster Gedanke war, dass libcrypto.so nicht installiert ist. Dies ist jedoch nicht der Fall, siehe:

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

Es existiert auch auf der Festplatte:

$ 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

Und auch RPM weiß davon:

$ 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

Also irgendwelche ideen was mir fehlt?

Grüße, Andi

8
Andi

Abhängigkeiten haben Modulnamen, die in Klammern aufgeführt sind, um Kollisionen zwischen Paketen zu vermeiden. Openssl in RHEL oder openssl-libs unter Fedora bieten libcrypto.so.10 vier verschiedene Modulnamen für zwei Architekturen:

$ 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)

Es scheint der Fall für CentOS too zu sein, was auf RHEL basiert.

In Ihrem Fall scheint openssl nur libcrypto.so.10 ohne Modulnamen bereitzustellen. Geramer-Server nimmt an, dass die Abhängigkeit fehlt, da libcrypto.so.10 vom Modul libcrypto.so.10 erforderlich ist.

6
divanov

Ich weiß, dass dieser Thread ein bisschen alt ist, aber ich bin kürzlich auf dieses Problem gestoßen und wollte mitteilen, was ich getan habe, um den Fehler zu beheben, vor allem da @ divanovs Antwort mir beim Debuggen des Problems geholfen hat.

In meinem Fall konnte ich kein bestimmtes Postgres-RPM (Postgresql91) installieren und sah den gleichen Fehler:

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)

Grundsätzlich konnte ich das Problem durch ein Upgrade der installierten Version von openssl beheben. Zum Zeitpunkt dieses Schreibens ist openssl-1.0.1e-15 im CentOS (6)-Repository verfügbar, hier: openssl-1.0.1e-15.el6.x86_64.rpm und stellt die Abhängigkeiten von libssl und libcrypto bereit das fehlte bisher.
Zur Installation können Sie: 

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

Wenn sich die Version im CentOS-Repo ändert, ist diese URL möglicherweise nicht mehr gültig.

Ok, jetzt zu den blutigen Details ...

Ursprünglich hatte mein Rechner openssl-1.0.0-27.el6_4.2.x86_64.rpm installiert, was nicht alle Pakete enthielt, die mein postgres rpm benötigte:

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

Nach der Installation der neueren Version von 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)  
...

Und jetzt sind alle glücklich ...

Fazit: Installieren Sie eine neuere Version von openssl, und es sollte die Abhängigkeiten bereitstellen, die Sie benötigen. Viel Glück!

9
scott

Installieren Sie openssl und openssl-libs gleichzeitig mit dem folgenden Befehl für RHEL7 oder 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

Da sich openssl und openssl-libs gegenseitig als Abhängigkeiten benötigen und das Ausführen ohne Sudo zu Konflikten mit der älteren Version führen kann.

1
KUMAR MAYANK

Ich konnte das Problem beheben, indem ich openssl aus der Ausschlusszeile in /etc/yum.conf entfernte. Wir haben Server verwaltet, so dass sie standardmäßig dort platziert wurden. Ich habe dann einfach eine normale Yum-Installation von dem, was ich brauchte, ausgeführt und es hat gut funktioniert.

1
Jordan

Ich habe yumdownloader verwendet, um eine lokale Kopie der openssl-RPM zu erstellen. Dann verwendete ich rpmrebuild mit den -e -p PACKAGE - Flags, um die fehlende Provides hinzuzufügen und ein neues RPM zu erstellen. Dann wurde das resultierende Artefakt installiert. Auch das Inkrementieren der Release hat geholfen.

0
Toddius Zho

Laden Sie das richtige rpm-Paket von diesem link herunter.

Um genau zu sein,

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

Und dann yum install dein Paket erneut.

0
MeadowMuffins
0
하늘치