Я устанавливаю программу на сервер как пользователь без полномочий root. В частности, это tmux 1.5, но, на мой взгляд, это должно распространяться на все локально установленные программы (я упоминаю название программы на случай, если эта проблема не станет моей собственной ошибкой).
Программа требует от меня установки некоторых зависимых библиотек (например, libevent и ncurses). Итак, я установил их оба локально, так как у меня нет доступа с правами root
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
выбором.