Ich habe einige Schwierigkeiten, den Unterschied zwischen PATH
und zu verstehen LD_LIBRARY_PATH
. Ich habe ein Installationssetup, für das eine Datei pkg.tcl erforderlich ist, und ich kann den Pfad nicht hinzufügen. Sollte dies der Fall sein PATH
oder LD_LIBRARY_PATH
?
27
TCLLIBPATH
. Entschuldigung, ich habe kein Argument. Nur ein Hinweis.Antworten:
Unix-Systeme sind in der Regel mit unterschiedlichen Dateitypen organisiert, die auf verschiedene Verzeichnisse verteilt sind. Zum Beispiel ausführbare Dateien sind in der Regel in Verzeichnissen mit dem Namen
bin
(/bin
,/usr/bin
,/usr/local/bin
, ...); stand historischbin
für binary, da es sich bei den ausführbaren Dateien um Binärdateien (Maschinencode) handelt, es kann aber auch Skripte geben. Da es mehrere Verzeichnisse gibt, die ausführbare Dateien enthalten, und es nützlich ist, Verzeichnisse im laufenden Betrieb hinzuzufügen und zu entfernen (z. B. um eine Anwendung mit mehreren ausführbaren Dateien zu testen, fügen Sie sie vorübergehend dem Suchpfad für ausführbare Dateien hinzu), gibt es dafür eine Umgebungsvariable:PATH
. Wenn Sie ein Programm unter Angabe seines Namens ausführen, sucht die Shell es in den in derPATH
Variablen angegebenen Verzeichnissen (eine durch Doppelpunkte getrennte Liste von Verzeichnissen).Der gleiche Mechanismus existiert für andere Dateitypen, nach denen ein Programm nach Namen suchen wird. Hier sind ein paar typische
PATH
Variablen (beachten Sie, dass die von mir angegebenen Beispielpfade nicht genau das sind, was Sie auf Ihrem System finden, sondern nur eine Idee haben).PATH
: ausführbare Dateien (zB/home/username/bin:/usr/local/bin:/usr/bin:/bin
).MANPATH
: Manualpages (zB/usr/local/man:/usr/man
).LD_LIBRARY_PATH
: Native Code - Bibliotheken (auf Linux enthält der Lookup - Pfad neben den Wert dieser Variablen, in der Regel/usr/local/lib
,/usr/lib
,/lib
und ein paar andere). Der NameLD
kommt von dynamischen l o d er die Systemkomponente , die Lasten in Bibliotheken dynamisch verknüpfte ausführbare Dateien .PERL5LIB
: Perl-Bibliotheken (zB/usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
).PYTHONPATH
: Python-Bibliotheken (zB/usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
).TCLLIBPATH
: TCL-Bibliotheken (zB/usr/local/lib/tcltk:/usr/lib/tcltk
).Wenn
pkg.tcl
es sich also um eine eigenständige ausführbare Datei handelt, geben Sie ihr Ausführungsberechtigungen und legen Sie sie irgendwo ab$PATH
. Wenn es sich um eine TCL-Bibliothek handelt, die von einem TCL-Programm geladen wurde, legen Sie sie irgendwo ab$TCLLIBPATH
.quelle
PATH
Dient zum Angeben von Verzeichnissen ausführbarer Programme.LD_LIBRARY_PATH
wird verwendet, um Bibliotheksverzeichnisse anzugeben.quelle
PATH
wird es hauptsächlich von der Shell verwendet, währendLD_LIBRARY_PATH
es (normalerweiseld-linux.so
) vom dynamischen Lader verwendet wird .