2013-08-22 12 views
12

Ich bin mit Ubuntu 12.04 - Server und konsequent bekommen:keine Versionsinformationen verfügbar

/usr/lib/libcrypto.so.1.0.0: keine Versionsinformationen (wird von/usr/lib/libpython2.7.so.1.0)

und

/usr/lib/libssl.so.1.0.0: keine Versionsinformationen (von /usr/lib/libpython2.7 erforderlich. so.1.0)

Fehlermeldungen ohne irgendein Muster für warum. Es kann so einfach sein wie das Ausführen von vi. Die Dateien sind da und sie sind keine Links.

Dies begann ein wenig nach dem Kompilieren und Installieren von OpenLDAP, mit den Anweisungen von ihrer Website beim Erlernen der Grundlagen des LDAP-Servers. Ich habe openLDAP natürlich entfernt, um das Problem zu beheben. Ich habe auch OpenSSL und libssl1.0.0 neu installiert, um diese Lösung zu testen und zu testen.

Jede Hilfe wird sehr geschätzt, Google war leider nicht nützlich.

+0

Es sieht aus wie Ihr Paket-Manager die richtigen Symlinks für /usr/lib/libcrypto.so nicht vorsah und /usr/lib/libssl.so – jww

Antwort

4

Ich bekam auch diese nervige Warnmeldung nach dem Kompilieren und Installieren der neuesten Version von openssl aus der Quelle (openssl-1.0.1f). Nach einigen Nachforschungen und einigen Versuchen konnte ich das Problem für mein spezielles Szenario beheben. Es kam im Grunde genau auf was die Warnmeldung sagt. In den Bibliotheken, die aus der Quelle erstellt wurden, sind keine Versionsinformationen verfügbar. Das hat das Ubuntu-Team in ihrer Distribution hinzugefügt. Die Lösung besteht also darin, Ihre openssl-Quelle neu zu kompilieren, nachdem Sie sie mit dem Versions-Skript, das in der Ubuntu-Paketverteilung für openssl enthalten ist, gepatcht haben.

Ich googelte für "Patch Openssl, um Versionsinformationen für Ubuntu zu enthalten" und passierte zufällig das Quellpaket, das ich brauche, unter https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz.

So, hier ist der Prozess, den ich gefolgt:

rm -r -f -v openssl-1.0.1f (just to make sure you start fresh) 
wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz 
tar -xvf openssl-1.0.1f.tar.gz 
wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz 
tar -xvf openssl_1.0.1f-1ubuntu1.debian.tar.gz 
mv debian openssl_1.0.1f-1ubuntu1 (just because that's what I did) 
cd openssl-1.0.1f/ 
patch -p1 < ../openssl_1.0.1f-1ubuntu1/patches/version-script.patch 
./config 
make 
make test 
sudo make install 

Nun sollte die Fehlermeldung weg.

Es ist erwähnenswert, dass ich zunächst meine openssl-1.0.1f Quelle mit dem Versions-Skript im ursprünglichen Quellpaket von http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.11.debian.tar.gz gepatcht. Aber mein make ist mit einem Fehler fehlgeschlagen. Ich denke, es macht Sinn, dass ich die gleiche Version 1.0.1f bekommen musste.

Kredit geht an @mattcasw für seinen Beitrag http://ubuntuforums.org/showthread.php?t=1905963, der mich auf den richtigen Weg geführt hat.

11

Ich glaube, ich sollte Recht auf den Punkt ...

Problem: libssl.so.1.0.0 und libcrypto.so.1.0.0 keine Versionsinformationen Warnung/Fehler.

Ich löste es !!! YAY!!! (Feuerwerk sollte abgehend und -material werden.)

Nach viel Forschung, Zeit und Mühe, (dauerte Wochen), hier ist was ich schließlich tun endete ...

Im Verzeichnis, in dem das Extrahieren gelandet Quellcode für Ihre Version von openssl 1.0.1h (Sollte auch für andere Versionen funktionieren.) Erstelle ich eine Datei namens openssl.ld

dies in dieser Datei setzen ...

Antwort

OPENSSL_1.0.0 { 
    global: 
    *; 
}; 

speichern es. Geben Sie nun in ...

sauber machen (Nur um sicherzustellen, dass wir frisch beginnen.)

Jetzt für die wirklich boggling Teil ausmacht ...

./config --prefix=/usr/local --openssldir=/usr/local/openssl shared -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions 

Then ...

make 

make test 

make install 

ldconfig 

Und das sollte es tun. (Es ist so einfach. Kein Patching erforderlich.)

Ich habe diese Lösung auf Debian Wheezy 32-und 64-Bit-Versionen angewendet. Und habe eine Beobachtung gemacht. Die 64-Bit-Version verwendet standardmäßig die neuen Dateien libssl.so.1.0.0 und libcrypto.so.1.0.0, die im Verzeichnis/usr/local/lib erstellt werden. Die 32-Bit-Version nicht. Aus diesem Grund hatte ich zuerst gedacht, dass die 32-Bit-Version von Debian Wheezy nicht unter diesem Problem litt, aber erst, wenn Sie die 32-Bit-Version für die neuen openssl-Bibliotheken im Verzeichnis/usr/local/lib verwenden.

Die Verwendung des ldd-Befehls, um zu testen, welche Bibliotheken die Binärdateien verwenden, war von unschätzbarem Wert, um dies herauszufinden.

Einen schönen Tag noch.

Herr E. Geck

+2

Es funktioniert super !!!. Vielen Dank. Übrigens habe ich den absoluten Pfad für das Versions-Skript verwendet. ZB --version-script =/home/userid/openssl/openssl.ld – jpark7ca