コンパイルしようとしています。ttyd
これが必要ですlibwebsockets
Fedoraで。マイシステムのバージョンが古く、ttyd
実行するには最新バージョンが必要です。ビデオテープツール。
どちらのプロジェクトもCMakeを使用しているので、コンパイルしてインストールできました。
ttyd
ビルドディレクトリで実行すると正常に動作します。しかし、他の場所で実行すると、次のエラーが発生します。
ttyd: error while loading shared libraries: libwebsockets.so.19: cannot open shared object file: No such file or directory
私の変数にビルドディレクトリを追加するとそれをPATH
使うことができますが、うまくいくには正しくインストールしたいと思います。私は何が間違っていましたか?ttyd
vhs
ttyd
インストールしてttyd
からlibwebsockets
削除しました。
おそらく共有ライブラリへのシンボリックリンクに興味があるかもしれませんが、これは問題に対する実際の解決策ではありません。ソースからこれら2つのライブラリをインストールした場合、共有ライブラリが見つからないのはなぜですか?
編集する:
両方のパッケージを同じ方法でインストールしました。
mkdir build
cd build
cmake ..
make
sudo make install
共有ライブラリは次の場所にインストールされます。/usr/local/lib/
答え1
ここでの問題は、デフォルトの共有/usr/local/lib
ライブラリ検索パスに含まれていないことです。この問題を解決する方法は3つあります。
LD_LIBRARY_PATH
実行前の設定ttyd
:$ LD_LIBRARY_PATH=/usr/local/lib ttyd
基本ライブラリ検索パスの更新:
# echo /usr/local/lib > /etc/ld.so.conf.d/local.conf # ldconfig
ビルド時にライブラリパスをバイナリにコンパイルします。
$ cmake -DCMAKE_INSTALL_RPATH=/usr/local/lib ..
上記の3つのオプションのいずれかを使用すると、共有ライブラリを見つけるttyd
ことができます。libwebsockets