非rootユーザーとしてサーバーにプログラムをインストールしています。具体的にはtmux 1.5ですが、私の考えでは、これはローカルにインストールされたすべてのプログラムに広く当てはまります(この問題が私自身のエラーではない場合に備えて、プログラム名について言及します)。
このプログラムでは、いくつかの依存ライブラリ(libeventやncursesなど)をインストールする必要があります。ルートアクセスがないため、ローカルにインストールしました。
cd $HOME/library/installation/folder
DIR=$HOME/local
./configure --prefix=$DIR
#... make ... make install
プログラムをインストールするには、ライブラリパッケージも含める必要がありました。
cd $HOME/program/installation/folder
./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
#... make ... make install
これで、問題なくプログラムが$ HOME / local / binにインストールされますが、実行可能ファイル$ HOME / local / bin / tmuxを実行すると、次のエラーが発生します。
tmux:共有ライブラリの読み込み中にエラーが発生しました:libevent-2.0.so.5:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません
プログラムが目的のライブラリを見つけられないように思えますが、libevent-2.0.so.5ファイルは、実際には構成オプションで指定されている$ HOME / local / libに存在します。インストールされたライブラリを実行するためにプログラムにどのように認識させることができるのでしょうか。$ HOME / lib、$ HOME / bin、および$ HOME / local / binにシンボリックリンクを配置しようとしましたが、どれも機能しませんでした。どんなアイデアや提案も大歓迎です
-R $DIR/lib
には、CFLAGS
構築しながらであるtmux
(とありませんlibevent
)。これは、私を助けていない-それは認識できないと言っGCCからのいくつかの最終的なエラーが発生した-R
(また、私は間にスペースなしにしようとした-R
とは$DIR
)。./configure --disable-sharedこれは機能し、更新LD_LIBRARY_PATH
も機能しました。私はlibevent
上記の--disable-shared
オプションで再び作ることになりました。