web-dev-qa-db-ja.com

診断と解決の方法:/usr/lib64/libz.so.1:バージョン情報がありません

I 時間の問題がありました CentOS5.6にlxmlをPython 2.7にインストールします。背景については、Python = 2.7は、CentOS5.6へのPythonの代替インストールであり、Python 2.4がインストールされています。

それはその道具によると源からの弾丸でした

./configure
make
make altinstall

しかし、約20時間試した後、実行可能な解決策を見つけることができ、lxmlをインストールすることができました。

まで、インタープリターの上部に次のエラーが表示されます。

python2.7: /usr/lib64/libz.so.1: no version information available (required by python2.7)
Python 2.7.2 (default, Jun 30 2011, 18:55:26) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Sheeeeut!'

このエラーは、スクリプトを実行するたびに出力されます。

例えば:

$ ./test.py
/usr/local/bin/python2.7: /usr/lib64/libz.so.1: no version information available (required by /usr/local/bin/python2.7)

スクリプトは問題なく実行されますが、このエラーは面倒です。少し掘り下げた後、間違ったバージョンのlibzがインストールされていると思われました。これは、古いバージョンであるか、別のプラットフォーム用に構築されたものです。

方法はよくわかりません。私が知る限り、libzからyumまでしかインストールしていません。とはいえ、20時間の試練の中で試した小さなことをすべて覚えているわけではありません。

私のlib64フォルダがどのように見えるかにも興味があるかもしれません。ここにいくつかの情報があります

$ ls -ltrh libz*
-rwxr-xr-x 1 root root  84K Jan  9  2007 libz.so.1.2.3
-rwxr-xr-x 1 root root 107K Jan  9  2007 libz.a
-rwxr-xr-x 1 root root 154K Feb 22 23:30 libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Apr 20 20:46 libz.so.1 -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jun 30 18:43 libzdb.so.7 -> libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Jul  1 11:35 libz.so -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jul  1 11:35 libzdb.so -> libzdb.so.7.0.2

注意:7月1日または6月30日と言うアイテムは私からのものです。これらのファイルは重複しているように見え、lxmlで以前に触れた問題の後で、または問題が発生したときに日付があったため、最初はこれらのファイルをバックアップフォルダーに移動しました。

1つの傾向は、Python 2.7を完全に削除して再インストールすることです。/usr/local/にインストールすることはデフォルトの選択としては適切ではなかったと思います。ただし、make uninstallオプションがない場合現在、それは解決のための時間のかかる作業のようですが、私の問題を解決できるかどうかはよくわかりません。

4
matchew

システムに複数のバージョンがあり、同じ問題が発生しました。 /usr/binの下でpython-2.4.3ファイルを作成し、それをpythonに向けると、問題が修正されました。python-2.4.3は、他のファイルをコンパイルした後、なんらかの方法で消去されました。私たちが使用しているバージョン。python 2.4.3内に構築されているyumアプリケーションが問題だと思います。

2
Craig Sayler

From Linuxダイナミックリンカーからの「バージョン情報がありません」エラーはどういう意味ですか? 、libpamに関連します:

「使用可能なバージョン情報がありません」は、ライブラリのバージョン番号が共有オブジェクトで小さいことを意味します。たとえば、バイナリをビルドするマシンでmajor.minor.patch番号が7.15.5であり、インストールマシンでmajor.minor.patch番号が7.12.1である場合、ldは警告を出力します。

これは、ターゲットOSに付属している共有オブジェクトのバージョンと一致するライブラリ(ヘッダーと共有オブジェクト)を使用してコンパイルすることで修正できます。たとえば、RedHat 3.4.6-9にインストールする場合、Debian4.1.1-21でコンパイルする必要はありません。これが、ほとんどのディストリビューションが特定のLinuxディストリビューション番号で出荷される理由の1つです。

それ以外の場合は、静的にリンクできます。ただし、PAMのようなものではこれを実行したくないため、クライアントの実稼働環境に一致する開発環境を実際にインストールする必要があります(または、少なくともインストールして、正しいライブラリバージョンに対してリンクします)。

2
harrymc
yum install python-lxml

トリックを行う必要があります

0
ZaB