J'ai de la difficulté à comprendre la différence entre PATH
et LD_LIBRARY_PATH
. J'ai une configuration d'installation qui nécessite un fichier pkg.tcl et je ne sais pas où lui ajouter le chemin: doit-il être à PATH
ou LD_LIBRARY_PATH
?
27
TCLLIBPATH
. Désolé, je n'ai aucun argument. Juste un indice.Réponses:
Les systèmes Unix ont tendance à être organisés avec différents types de fichiers répartis sur différents répertoires. Par exemple, sont généralement dans executables répertoires appelés
bin
(/bin
,/usr/bin
,/usr/local/bin
, ...); historiquement,bin
signifiait binaire, car les exécutables sont des binaires (code machine), mais il peut aussi y avoir des scripts. Puisqu'il existe plusieurs répertoires qui contiennent des exécutables, et qu'il est utile d'ajouter et de supprimer des répertoires à la volée (par exemple, pour tester une application multi-exécutable, vous l'ajoutez temporairement au chemin de recherche des exécutables), il existe une variable d'environnement pour cela:PATH
. Lorsque vous exécutez un programme en donnant son nom, le shell le recherche dans les répertoires mentionnés dans laPATH
variable (c'est une liste de répertoires séparés par deux-points).Le même mécanisme existe pour d'autres types de fichiers que certains programmes vont rechercher par nom. Voici quelques
PATH
variables typiques (notez que les exemples de chemins que je donne ne sont pas exactement ce que vous trouverez sur votre système, juste là pour donner une idée).PATH
: exécutables (par exemple/home/username/bin:/usr/local/bin:/usr/bin:/bin
).MANPATH
: pages de manuel (par exemple/usr/local/man:/usr/man
).LD_LIBRARY_PATH
: Les bibliothèques de code natif (sous Linux, en plus de la valeur de cette variable, le chemin recherche contient généralement/usr/local/lib
,/usr/lib
,/lib
et quelques autres). Le nomLD
vient de la dynamique l oa d er , le composant système qui charge les bibliothèques dans des exécutables liés dynamiquement .PERL5LIB
: Bibliothèques Perl (par exemple/usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
).PYTHONPATH
: Bibliothèques Python (par exemple/usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
).TCLLIBPATH
: Bibliothèques TCL (par exemple/usr/local/lib/tcltk:/usr/lib/tcltk
).Donc, si vous
pkg.tcl
êtes un exécutable autonome, donnez-lui des autorisations d'exécution et déposez-le quelque part$PATH
. S'il s'agit d'une bibliothèque TCL chargée par un programme TCL, déposez-la quelque part$TCLLIBPATH
.la source
PATH
sert à spécifier les répertoires des programmes exécutables.LD_LIBRARY_PATH
est utilisé pour spécifier les répertoires des bibliothèques.la source
PATH
est utilisé principalement par le shell, tandis queLD_LIBRARY_PATH
par le chargeur dynamique (généralementld-linux.so
).