14

実行しようとするすべてのgitコマンドに対して、このメッセージが表示されます。例:

stewie:~# git --version
git: /usr/local/lib/libz.so.1: no version information available (required by git)
git version 1.7.11.4

どうすればこれを取り除くことができますか?


編集1:

更新しようとしていzlib1gます:

stewie:/tmp# apt-get install zlib1g
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

編集2:

私はDebianLenny(5)を使用しているので、残念ながら、使用apt-getはそれほど簡単ではありません。

4

5 に答える 5

20

/ usr / localは、マシンの管理者がローカルでコンパイルしたプログラムをインストールするために使用することを目的としています。単純なプログラムは/usr/ local / binに移動し、そこから/ usr / local/binをPATH環境変数に入れることで実行されます。これにより、管理者は、OSに含まれていない追加のコマンドへのアクセスをユーザーに提供できます。ルートが/usr/ binに新しいものをインストールするのを止めるものは何もありませんが、慣例では/ usr / binはOSディストリビューターのパッケージツールによって管理され、ローカルのものを分離しておくと少し混乱が少なくなります。

ローカルプログラムがOSディストリビューターによって提供されていないライブラリを必要とする場合があり、ライブラリは/ usr / local / libに入り、すべてが機能します。

バージョンの競合がある場合(OSはバージョンXのlibz.soを提供しましたが、ローカルプログラムはlibz.soバージョンX + 1を必要とするか、特別なオプションを使用してlibz.soをコンパイルする必要があります)、事態は複雑になり始めます。/ usr / local / libに新しいライブラリをインストールすることは、おそらく最初は問題ありません。

すべてのプログラムはに基づいてライブラリを検索し、/etc/ld.so.confそこで/ usr / libが優先される場合、/ usr/localプログラムは必要な新しいライブラリを見つけられません。したがって、通常は/ usr / local/libが優先されます。ライブラリには下位互換性があるため、古いプログラムが新しいライブラリを見つけることは通常問題にはなりません。

数年後、OSを数回アップグレードした後、/ usr/libのライブラリはバージョンX+2になり、/ usr / local/libのライブラリはバージョンX+1のままになり、/ usr/binのプログラムが古い/usr/ local / libバージョン、および誤動作。これはおそらく古いライブラリを削除することで修正できます。バージョンX+1を必要とする/usr/ local / binプログラムは、/ usr/libでバージョンX+2を検出し、正常に動作します。ただし、そもそもバージョンX + 1をローカルにインストールする理由が、新しいバージョンの必要性である場合に限ります。

削除を行う前に潜在的な問題を調査するには、/ usr/localでlibzを使用しているものを探します。

ldd /usr/local/bin/* /usr/local/sbin/* | less +/libz

libzを参照するものを見つけた場合は、それを実行してみて、LD_LIBRARY_PATH=/usr/libそれがまだ機能することを確認してください。何も壊れていないと仮定して、ローカルのlibzファイルを削除します(必要に応じてこれを元に戻すことができるように、バックアップの場所に移動します)

mkdir /root/local-libz-backup
mv /usr/local/lib/libz* /root/local-libz-backup
ldconfig
于 2012-08-14T23:23:33.257 に答える
3

サーバーにDirectAdminがあり、このガイドで問題が解決しました。

(ページからコピー)

エラーが表示された場合

/usr/local/lib/libz.so.1: no version information available (required by python)

インストールされているlibzのバージョンと関係があります。現在のバージョンの理由は、libxml2が必要とするlibzのバージョンと関係があります。両方の新しいバージョンで問題は解決しますが、この更新で報告された多くの問題のため、libzとlibxml2の古いバージョンに戻しました。警告は何も害を及ぼさないので、無視できることに注意してください。

それでもlibzとlibxml2を新しいバージョンに更新してメッセージを回避したい場合は、次のように入力します。

cd /usr/local/directadmin/custombuild
./build update
perl -pi -e 's/zlib:1.2.3:.*/zlib:1.2.5:/' versions.txt
perl -pi -e 's/libxml2:2.7.6:.*/libxml2:2.7.8:/' versions.txt
./build update_data
./build zlib
./build libxml2
./build php n
于 2013-12-03T23:30:36.313 に答える
2

この方法は私の場合は機能します。.bash_profileに次の行を追加してください。

LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH

次に実行します. ~/.bash_profile

于 2017-10-12T06:19:06.223 に答える
1

LD_LIBRARY_PATHエラーを解決するためにgitlibパスを使用してエクスポートします。

libz.so.1: no version information available
于 2017-09-05T13:44:43.993 に答える
0

ビルドの前提条件を更新する必要があるようです。

于 2012-08-14T21:59:29.273 に答える