私はVoid Linuxを使用しています。
インストールしました無料Voidパッケージマネージャを介して。それは置くlibssl.so.48.0.1存在する/usr/lib。この設定でエラーが発生しました。https私のアプリケーションでは正しく動作しません。
だからまとめました。openssl-1.1ソースとコピーからlibssl.so.1.1存在する/usr/ローカル/libそれからLD構成。
それから私のアプリケーションは正常に動作し始めました。
なぜlibssl.so.48.0.1libresslに付属しているのはうまくいきませんか?そのバージョンが私たちがコンパイルしたバージョンより高いですか?
また、なぜlibssl.so.1.1存在する/usr/ローカル/lib書くlibssl.so.48.0.1存在する/usr/lib?彼らはすべて存在するので?
答え1
- トピックの質問:
/usr/local/lib
直接インストール(コンパイル)したライブラリで機能します。/usr/lib
ディストリビューションによって提供されるライブラリに適用されます。あなたはについて読んでみたいかもしれませんファイルシステム階層標準(FHS)より多くの情報を知りたいです。 - 本文の最初の質問:理由を知るために正確に動作しません。追加情報が必要です。新しいバージョンのソフトウェア/ライブラリが常に優れているわけではないことをすでに覚えておいてください。互換性が壊れ、新機能によりバグが発生する可能性があります。
- 2番目の質問の場合:
$LD_LIBRARY_PATH
その理由は、システムが利用可能なライブラリが見つかるまでディレクトリに記載されている順序に従うためです。 varが存在しない場合はその内容を使用してください/etc/ld.so.conf
。- その背後にあるアイデアは、ディストリビューション開発者ではなく、システム管理者がシステムを制御する必要があるということです。独自のバージョン(例:のバージョン)を使用するには、
/usr/local/lib
システムでそれを許可する必要があります。