2013-08-22 31 views
12

Używam Ubuntu 12.04 - serwer i konsekwentnie dostaniem:brak dostępnych wersji

/usr/lib/libcrypto.so.1.0.0: brak informacji dostępna wersja (wymagane przez/usr/lib/libpython2.7.so.1.0)

i

/usr/lib/libssl.so.1.0.0: brak informacji dostępna wersja (wymagane przez /usr/lib/libpython2.7. So.1.0)

komunikaty o błędach bez żadnego wzorca, dlaczego. Może to być coś tak prostego jak uruchamianie vi. Pliki są tam i nie są linkami.

To zaczęło się dziać trochę po skompilowaniu i zainstalowaniu OpenLDAP, przy użyciu instrukcji z ich strony podczas nauki podstaw serwera LDAP. Usunąłem oczywiście openLDAP, aby spróbować usunąć problem. Ponownie zainstalowałem OpenSSL i libssl1.0.0, aby wypróbować i przetestować to rozwiązanie.

Każda pomoc będzie bardzo doceniana, Google niestety nie przydało się.

+0

Wygląda na to, menedżer pakietów nie zapewniają odpowiednie dowiązania do /usr/lib/libcrypto.so i /usr/lib/libssl.so – jww

Odpowiedz

4

Otrzymałem także irytujący komunikat ostrzegawczy po skompilowaniu i zainstalowaniu najnowszej wersji openssl ze źródła (openssl-1.0.1f). Po kilku badaniach wraz z próbami i błędami udało mi się rozwiązać problem związany z moim konkretnym scenariuszem. Zasadniczo sprowadza się to dokładnie do tego, co mówi ostrzeżenie. W bibliotekach utworzonych ze źródeł nie ma informacji o wersji. To jest coś, co zespół Ubuntu dodał w swojej dystrybucji. Tak więc rozwiązaniem jest rekompilacja twojego źródła openssl po załataniu go skryptem wersji zawartym w dystrybucji pakietów Ubuntu dla openssl.

Zrobiłem dla "patch openssl, aby zawierało informacje o wersji dla ubuntu" i znalazłem potrzebny pakiet źródłowy pod adresem https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz.

Więc oto proces Śledziłem:

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 

Teraz komunikat powinien zniknąć.

Warto wspomnieć, że początkowo poprawiłem swoje źródło openssl-1.0.1f za pomocą skryptu wersji zawartego w oryginalnym pakiecie źródłowym z http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.11.debian.tar.gz. Ale mój make zawodził z błędem. Sądzę, że to ma sens, że potrzebuję uzyskać tę samą wersję 1.0.1f.

Kredyt trafił do @mattcasw za jego wpis http://ubuntuforums.org/showthread.php?t=1905963, który poprowadził mnie właściwą drogą.

11

Chyba powinienem od razu do punktu ...

Problem: libssl.so.1.0.0 i libcrypto.so.1.0.0 Brak informacji o dostępnej wersji ostrzegawczy/błąd.

ZOSTAŁEM ROZWIĄZANY !!! YAY !!! (Fajerwerki powinny być schodzili i rzeczy).

Po wielu badań, czasu i wysiłku, (trwało tydzień), oto co ostatecznie skończyło się robi ...

W katalogu, w którym zakończył się ekstrahowanie kod źródłowy dla twojej wersji openssl 1.0.1h (powinien działać również w innych wersjach.) Utworzyć plik o nazwie openssl.ld

W tym pliku umieścić ten ...

Odpowiedź

OPENSSL_1.0.0 { 
    global: 
    *; 
}; 

zapisz. Teraz wpisz w ...

make clean (Wystarczy mieć pewność, zaczynamy nowy.)

Teraz dla naprawdę polnych części ...

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

potem ...

make 

make test 

make install 

ldconfig 

To powinno wystarczyć. (To takie proste, nie wymaga łatania).

Zastosowałem to rozwiązanie do Debian Wheezy zarówno w wersji 32-, jak i 64-bitowej. I dokonałem obserwacji. Wersja 64-bitowa automatycznie przyjmuje domyślnie nowe pliki libssl.so.1.0.0 i libcrypto.so.1.0.0, które są tworzone w katalogu/usr/local/lib. Wersja 32-bitowa tego nie robi. Dlatego początkowo myślałem, że 32-bitowa wersja Debian Wheezy nie ucierpiała z powodu tego problemu, ale robi to, gdy uzyskasz 32-bitową wersję, aby użyć nowych bibliotek openssl w katalogu/usr/local/lib.

Użycie polecenia ldd do przetestowania bibliotek, których używają pliki binarne, było nieocenione również w tym zakresie.

Miłego dnia.

Pan E. Dude

+2

Działa świetnie !!!. Dzięki. Przy okazji, użyłem bezwzględnej ścieżki do skryptu wersji. Np., --version-script =/home/userid/openssl/openssl.ld – jpark7ca