Я встановлюю програму на сервер як некорінний користувач. Зокрема, це 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 - відключити-спільно Це спрацювало, оновившиLD_LIBRARY_PATH
також працював. Я в кінцевому підсумкуlibevent
знову створив вищевказаний--disable-shared
варіант.