Ich installiere ein Programm auf einem Server als Nicht-Root-Benutzer. Insbesondere ist es tmux 1.5, aber dies sollte meiner Meinung nach allgemein für alle lokal installierten Programme gelten (ich erwähne den Programmnamen, falls dieses Problem nicht mein eigener Fehler ist).
Für das Programm muss ich einige abhängige Bibliotheken installieren (z. B. libevent und ncurses). Also habe ich beide lokal installiert, da ich keinen Root-Zugriff habe
cd $HOME/library/installation/folder
DIR=$HOME/local
./configure --prefix=$DIR
#... make ... make install
Um das Programm zu installieren, musste ich auch die Bibliothekspakete einschließen:
cd $HOME/program/installation/folder
./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
#... make ... make install
Ok, dies installiert das Programm ohne Probleme in $ HOME / local / bin, aber wenn ich die ausführbare Datei ausführe: $ HOME / local / bin / tmux, erhalte ich den folgenden Fehler:
tmux: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libevent-2.0.so.5: freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis
Es scheint mir, dass das Programm die gewünschten Bibliotheken nicht finden kann, aber die Datei libevent-2.0.so.5 existiert tatsächlich in $ HOME / local / lib, wie in den Konfigurationsoptionen angegeben. Ich frage mich, wie ich das Programm dazu bringen kann, die installierte Bibliothek zu erkennen, um sie auszuführen. Ich habe versucht, symbolische Links in $ HOME / lib, $ HOME / bin und $ HOME / local / bin einzufügen, aber keines davon hat funktioniert. Alle Ideen und Vorschläge wäre sehr dankbar
-R $DIR/lib
an, esCFLAGS
ist beim Bauentmux
(und nichtlibevent
). Dies hat mir nicht geholfen - es gab einen letzten Fehler von gcc, der besagte, dass es nicht erkannt werden kann-R
(außerdem habe ich es ohne das Leerzeichen zwischen-R
und versucht$DIR
). ./configure --disable-shared Dies hat funktioniert, die Aktualisierung hatLD_LIBRARY_PATH
auch funktioniert. Am Ende habe ichlibevent
wieder mit der obigen--disable-shared
Option gemacht.