Sto installando un programma su un server come utente non root. In particolare è tmux 1.5, ma questo dovrebbe applicarsi ampiamente a tutti i programmi installati localmente secondo me (cito il nome del programma nel caso in cui questo problema finisca per non essere il mio errore).
Il programma richiede l'installazione di alcune librerie dipendenti (ad esempio libevent e ncurses). Quindi, li ho installati entrambi localmente poiché non ho accesso come root
cd $HOME/library/installation/folder
DIR=$HOME/local
./configure --prefix=$DIR
#... make ... make install
Ora, per installare il programma, ho dovuto includere anche i pacchetti della libreria:
cd $HOME/program/installation/folder
./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
#... make ... make install
Ok, quindi questo installa il programma senza problemi in $ HOME / local / bin, ma se eseguo il file eseguibile: $ HOME / local / bin / tmux, ottengo il seguente errore:
tmux: errore durante il caricamento delle librerie condivise: libevent-2.0.so.5: impossibile aprire il file oggetto condiviso: nessun file o directory
Mi sembra che il programma non riesca a trovare le librerie desiderate, ma il file libevent-2.0.so.5 esiste effettivamente in $ HOME / local / lib come specificato nelle opzioni di configurazione. Mi chiedo come posso fare in modo che il programma riconosca la libreria installata per poter funzionare. Ho provato a mettere collegamenti simbolici in $ HOME / lib, $ HOME / bin e $ HOME / local / bin, ma nessuno di questi ha funzionato. Qualsiasi idea e suggerimento sarebbe molto apprezzata
-R $DIR/lib
diCFLAGS
si, mentre la costruzionetmux
(e nonlibevent
). Questo non mi ha aiutato - c'è stato un errore finale da parte di gcc nel dire che non è in grado di riconoscere-R
(inoltre, ho provato senza lo spazio tra-R
e$DIR
). ./configure --disable-shared Funzionava, aggiornandoLD_LIBRARY_PATH
anche. Ho finito per fare dilibevent
nuovo con l'--disable-shared
opzione sopra .