Tengo algunas dificultades para entender la diferencia entre PATH
y LD_LIBRARY_PATH
. Tengo una configuración de instalación que necesita un archivo pkg.tcl y no sé dónde agregarle la ruta: ¿debería ser PATH
o LD_LIBRARY_PATH
?
27
TCLLIBPATH
. Lo siento, no tengo argumento. Solo una pista.Respuestas:
Los sistemas Unix tienden a organizarse con diferentes tipos de archivos distribuidos en diferentes directorios. Por ejemplo, los ejecutables son por lo general en directorios llamados
bin
(/bin
,/usr/bin
,/usr/local/bin
, ...); históricamente,bin
significaba binario, porque los ejecutables son binarios (código de máquina), pero también puede haber scripts. Dado que hay varios directorios que contienen ejecutables, y es útil agregar y eliminar directorios sobre la marcha (por ejemplo, para probar una aplicación multi-ejecutable, lo agrega temporalmente a la ruta de búsqueda de ejecutables), hay una variable de entorno para eso:PATH
. Cuando ejecuta un programa dando su nombre, el shell lo busca en los directorios mencionados en laPATH
variable (es una lista de directorios separados por dos puntos).El mismo mecanismo existe para otros tipos de archivos que algún programa buscará por nombre. Aquí hay algunas
PATH
variables típicas (tenga en cuenta que las rutas de ejemplo que proporciono no son exactamente las que encontrará en su sistema, solo están ahí para dar una idea).PATH
: ejecutables (por ejemplo/home/username/bin:/usr/local/bin:/usr/bin:/bin
).MANPATH
: páginas del manual (p/usr/local/man:/usr/man
. ej .).LD_LIBRARY_PATH
: Bibliotecas de código nativo (en Linux, además del valor de esta variable, la ruta de búsqueda contiene típicamente/usr/local/lib
,/usr/lib
,/lib
y algunos otros). El nombreLD
proviene de dinámica l OA d er , el componente del sistema que las bibliotecas se carga en ejecutables enlazados dinámicamente .PERL5LIB
: Bibliotecas Perl (por ejemplo/usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
).PYTHONPATH
: Bibliotecas de Python (por ejemplo/usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
).TCLLIBPATH
: Bibliotecas TCL (por ejemplo/usr/local/lib/tcltk:/usr/lib/tcltk
).Entonces, si su
pkg.tcl
es un ejecutable independiente, dele permisos de ejecución y suéltelo en algún lugar$PATH
. Si es una biblioteca TCL cargada por un programa TCL, colóquela en algún lugar$TCLLIBPATH
.fuente
PATH
es para especificar directorios de programas ejecutables.LD_LIBRARY_PATH
se usa para especificar directorios de bibliotecas.fuente
PATH
es utilizado principalmente por el shell, mientras queLD_LIBRARY_PATH
es usado por el cargador dinámico (generalmenteld-linux.so
).