Debianプログラムは通常共有ライブラリ/依存関係に遅れがあるため、資格のある共有ライブラリと組み合わせて使用すると機能する必要があります。つまり、Archプログラム/パッケージなど、OSのローリング/クイックアップデートに基づいて同じ最新のアップデートを使用できます。
したがって、すべてのパッケージファイルをDebian OS自体にコピーしてください。たとえば、プログラムは次のようになります。光明ドットコム、その部門。にコピー/usr/local/lib
しかし、それを必要とする同伴共有ライブラリがこのように失敗するのはなぜですか?
$ LD_LIBRARY_PATH=/usr/local/lib xbright =5
xbright: relocation error: /usr/local/lib/libc.so.6: symbol _dl_audit_symbind_alt version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
良い情報でクリア、失敗
$ xbright =5
xbright: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by xbright)
助けてください。期待どおりに機能させるにはどうすればよいですか?
答え1
動的リンカーもCライブラリの一部であるため、コピーする必要があります。/lib64/ld-linux-x86-64.so.2
Archが指している場所を確認してコピーし、次を実行して/usr/local/lib
正しく機能していることを確認します。
LD_LIBRARY_PATH=/usr/local/lib /usr/local/lib/ld-2.34.so xbright =5
(ld-2.34.so
適切な名前に変更してください)。
以下を使用して、デフォルトでこのインタプリタを使用するようにバイナリを設定できますpatchelf
。
patchelf --set-interpreter /usr/local/lib/ld-2.34.so /usr/local/bin/xbright
常に設定する必要がないように設定することもRPATH
できます。xbright
/usr/local/lib
LD_LIBRARY_PATH
patchelf --set-rpath /usr/local/lib /usr/local/bin/xbright