我正在以非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中,如configure选项中所指定。我想知道如何让程序识别已安装的库以便运行。我尝试将符号链接放在$ HOME / lib,$ HOME / bin和$ HOME / local / bin中,但是这些都不起作用。任何想法和建议将不胜感激
-R $DIR/lib
toCFLAGS
在构建tmux
(而不是libevent
)。这对我没有帮助-gcc最终出现了一个错误,说它无法识别-R
(同样,我尝试了在-R
和之间没有空格$DIR
)。./configure --disable-shared这有效,更新了LD_LIBRARY_PATH
也有效。我最终libevent
再次使用以上--disable-shared
选项进行制作。