web-dev-qa-db-ja.com

利用可能なバージョン情報はありません

私はUbuntu12.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を再インストールして、そのソリューションをテストしてみました。

どんな助けでも大歓迎です、残念ながらグーグルは役に立ちませんでした。

14
tanwedar

私は要点を正しく理解する必要があると思います...

問題:libssl.so.1.0.0およびlibcrypto.so.1.0.0にバージョン情報がありません警告/エラー。

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

多くの研究、時間と労力を費やした後(数週間かかりました)、これが私が最終的にやったことです...

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

このファイルにこれを入れてください...

回答

OPENSSL_1.0.0 {
    global:
    *;
};

それを保存。ここで入力します...

きれいにします(私たちが新しく始めていることを確認するためだけに)。

さて、本当に気が遠くなるような部分のために...

./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ビットバージョンの両方のDebianWheezyに適用しました。そして観察をしました。 64ビットバージョンは、/ usr/local/libディレクトリに作成された新しいlibssl.so.1.0.0およびlibcrypto.so.1.0.0ファイルに自動的にデフォルト設定されます。 32ビットバージョンはそうではありません。そのため、最初は32ビットバージョンのDebian Wheezyでこの問題が発生しないと思っていましたが、32ビットバージョンを取得すると、/ usr/local/libディレクトリにある新しいopensslライブラリを使用できるようになります。

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

ごきげんよう。

E.デュード氏

12
Mr. E. Dude

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

「ubuntuのバージョン情報を含むパッチopenssl」をグーグルで検索したところ、たまたま必要なソースパッケージが https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1)で見つかりました。 f-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

これで、エラーメッセージは消えるはずです。

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

クレジットは彼の投稿のために@mattcaswに行きます http://ubuntuforums.org/showthread.php?t=190596 それは私を正しい道に導きました。

4
dcarrith