15

私はUbuntu 12.04を使用しています-サーバーで、一貫して取得しています:

/usr/lib/libcrypto.so.1.0.0: バージョン情報がありません (/usr/lib/libpython2.7.so.1.0 で必要)

/usr/lib/libssl.so.1.0.0: バージョン情報がありません (/usr/lib/libpython2.7.so.1.0 で必要)

理由のパターンのないエラーメッセージ。vi を実行するのと同じくらい簡単なことです。ファイルはそこにあり、リンクではありません。

これは、OpenLDAP をコンパイルしてインストールした直後に発生し始め、ldap サーバーの基本を学びながらサイトの指示を使用しました。もちろん、問題を解決するためにopenLDAPを削除しました。また、OpenSSL と libssl1.0.0 を再インストールして、そのソリューションを試してテストしました。

残念ながら、Googleは役に立ちませんでした。

4

3 に答える 3

14

そろそろ本題に入ればいいのに…

問題: libssl.so.1.0.0 および libcrypto.so.1.0.0 のバージョン情報が利用できないという警告/エラー。

私はそれを解決しました!!! わーい!!!(花火が上がるはずです。)

多くの調査、時間と労力(数週間かかりました)の後、私が最終的にやったことは次のとおりです...

自分のバージョンの openssl 1.0.1h のソース コードを抽出したディレクトリに (他のバージョンでも機能するはずです)、openssl.ld というファイルを作成します。

このファイルにこれを入れます...

答え

OPENSSL_1.0.0 {
    global:
    *;
};

それを保存。今すぐ入力してください...

make clean (確実に最初からやり直すためです。)

さて、本当に気が遠くなるような部分です...

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

それで...

make

make test

make install

ldconfig

そして、それはそれを行う必要があります。(とてもシンプルです。パッチは必要ありません。)

このソリューションを 32 ビット バージョンと 64 ビット バージョンの両方の Debian Wheezy に適用しました。そして、観察を行いました。64 ビット バージョンは、/usr/local/lib ディレクトリに作成された新しい libssl.so.1.0.0 および libcrypto.so.1.0.0 ファイルに自動的にデフォルト設定されます。32 ビット版にはありません。そのため、最初は Debian Wheezy の 32 ビット バージョンではこの問題は発生しないと考えていましたが、32 ビット バージョンを入手して /usr/local/lib ディレクトリにある新しい openssl ライブラリを使用すると、問題が発生します。

ldd コマンドを使用して、バイナリが使用しているライブラリをテストすることは、これを理解する上でも非常に貴重でした。

良い1日を。

ミスター・E・デュード

于 2014-09-12T19:08:48.143 に答える
4

また、最新バージョンの openssl をソース (openssl-1.0.1f) からコンパイルしてインストールした後、その厄介な警告メッセージが表示されました。いくつかの試行錯誤とともにいくつかの調査を行った後、特定のシナリオの問題を修正することができました。それは基本的に、警告メッセージが言っていることとまったく同じになりました。ソースからビルドされたライブラリで利用できるバージョン情報はありません。これは、Ubuntu チームがディストリビューションに追加したものです。したがって、解決策は、openssl の Ubuntu パッケージ ディストリビューションに含まれているバージョン スクリプトでパッチを適用した後で、openssl ソースを再コンパイルすることです。

「ubuntu のバージョン情報を含むように openssl にパッチを当てる」を Google で検索したところ、たまたま必要なソース パッケージがhttps://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1 で見つかりました。 debian.tar.gz

だから、ここに私が従ったプロセスがあります:

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

これで、エラー メッセージは表示されなくなります。

最初に、 http: //archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5 の元のソース パッケージに含まれているバージョン スクリプトを使用して、openssl-1.0.1f ソースにパッチを適用したことに言及する価値があります。.11.debian.tar.gz . しかし、私makeはエラーで失敗していました。同じバージョン 1.0.1f を入手する必要があったのは理にかなっていると思います。

@mattcasw の投稿http://ubuntuforums.org/showthread.php?t=1905963の功績は、私を正しい道に導いてくれました。

于 2014-03-25T12:21:16.490 に答える