Renuncia de responsabilidad:
Este manual ha sido sustituido por una versión más reciente y no tendrá
soporte de aquí en adelante.
|
[ << ]
[ < ]
[ Inicio ]
[ > ]
[ >> ]
5. Variables de Entorno
Contenido:
5.a. ¿Variables de Entorno?
¿Qué son?
Una variable de entorno es un objeto designado para contener información usada por una
o más aplicaciones. Algunos usuarios (especialmente aquellos nuevos en Linux) encuentran esto un
poco extraño o inmanejable. Sin embargo esto no es cierto: usando variables de entorno
hace que cualquiera pueda cambiar una opción de configuración para una o más aplicaciones fácilmente.
Ejemplos Importantes
La siguiente tabla muestra un listado de variables de entorno usado por un sistema Linux y
describe su uso. Los valores de ejemplo se encuentran después de la tabla.
| Variable |
Descripción |
| PATH |
Esta variable contiene una lista de directorios separados por ":" en la cual el
sistema buscará los archivos ejecutables. Al introducir el nombre de un ejecutable
(como ls, rc-update o emerge) que no se
encuentre en un de los directorios listados, el sistema no lo encontrará, (a menos que
se introduzca la ruta completa, por ejemplo: /bin/ls).
|
| ROOTPATH |
Esta variable tiene la misma función que PATH, pero únicamente contiene
los directorios que el sistema debe revisar cuando el usuario root introduce un comando.
|
| LDPATH |
Esta variable contiene una lista de directorios separados por ":" en la cual
el enlazador dinámico busca para encontrar una librería.
|
| MANPATH |
Esta variable contiene una lista de directorios separados por ":" en la cual
el comando man busca las páginas de manual.
|
| INFODIR |
Esta variable contiene una lista de directorios separados por ":" en la cual
el comando info busca las páginas info.
|
| PAGER |
Esta variable contiene la ruta hacia el programa utilizado para mostrar el
contenido de los ficheros (como less o more).
|
| EDITOR |
Esta variable contiene la ruta hacia el programa utilizado para modificar el
contenido de los archivos (como nano o vi).
|
| KDEDIRS |
Esta variable contiene una lista de directorios separados por ":"
los cuales contienen material específico de KDE.
|
| CLASSPATH |
Esta variable contiene una lista de directorios separados por ":" los cuales
contienen las clases de Java.
|
| CONFIG_PROTECT |
Esta variable una lista de directorios separados por espacio los cuales
deben ser protegidos por Portage durante las actualizaciones.
|
| CONFIG_PROTECT_MASK |
Esta variable una lista de directorios separados por espacio los cuales
no deben ser protegidos por Portage durante las actualizaciones.
|
A continuación puedes encontrar ejemplos de definiciones para todas estas variables:
Listado de Código 1.1: Definiciones de ejemplo |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf
|
5.b. Definiendo variables globalmente
El directorio /etc/env.d
Para centralizar la definición de estas variables, Gentoo introduce el directorio
/etc/env.d. Dentro de este directorio se encuentran varios
ficheros como por ejemplo 00basic, 05gcc, etc. los cuales contienen
las variables necesarias para la aplicación de la cual llevan el nombre.
Por ejemplo, al instalar gcc, un fichero llamado 05gcc
que contiene la definición de las siguientes variables, fue creado por
el ebuild:
Listado de Código 2.1: /etc/conf.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
Otras distribuciones le piden modificar o añadir definiciones de variables de
entorno semejantes en /etc/profile o en otros sitios. Por otro lado,
Gentoo nos hace (y a Portage) más fácil mantener y manejar las variables de entorno
sin tener que prestar atención a los numerosos ficheros que pueden contenerlas.
Por ejemplo, cuando gcc es actualizado, también es actualizado
el fichero /etc/env.d/05gcc sin ser necesaria ninguna interacción
por parte del usuario.
Esto no solo beneficia a Portage, sino también al usuario. En ocasiones se podrá
pedir establecer cierta variable de entorno para todo el sistema. Como ejemplo,
tomamos la variable http_proxy. En lugar de perder el tiempo con
/etc/profile, puedes crear el fichero (/etc/env.d/99local)
y introducir la(s) definición(es) en él:
Listado de Código 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Usando el mismo fichero para todas las variables, se obtiene una visión rápida de las
variables que definidas por uno mismo.
El guión env-update
Varios archivos de /etc/env.d definen la variable PATH. esto
no es un error: cuando ejecute env-update, este concatenará las múltiples
definiciones antes de actualizar las variables de entorno, haciendo más fácil a
los paquetes (o usuarios) añadir sus propias opciones en las variables de entorno
sin interferir con los valores ya existentes.
El guión env-update concatenará los valores alfabéticamente ordenados por
el nombre de los ficheros de /etc/env.d. Esto es así porque muchos de
los ficheros de /etc/env.d empiezan por un número.
Listado de Código 2.3: Orden de actualización usado por env-update |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
Cuando ejecute env-update, el guión creará todas las variables de entorno
y las colocará en /etc/profile.env (el cual es usado por
/etc/profile). Además, también extraerá la información de la
variable LDPATH y la usará para crear /etc/ld.so.conf.
Después de esto, ejecutará ldconfig para recrear el archivo usado por el
enlazador dinámico: /etc/ld.so.cache.
Si quiere observar el efecto de env-update inmediatamente después de ejecutarlo,
ejecute el siguiente comando para actualizar su entorno. Posiblemente, los usuarios que
instalaron Gentoo ellos mismos, recordarán estas instrucciones de la instalación:
Listado de Código 2.4: Actualizando el entorno |
# env-update && source /etc/profile
|
5.c. Definiendo variables locales
Específicas de usuario
No siempre queremos definir variables de entorno globales. Por ejemplo,
podríamos querer añadir /home/my_user/bin a la variable PATH,
pero no queremos que todos los usuarios de nuestro sistema lo tengan en su PATH.
Si queremos definir una variable localmente, debemos usar ~/.bashrc o
~/.bash_profile:
Listado de Código 3.1: Extendiendo el PATH para uso local en: ~/.bashrc |
PATH="${PATH}:/home/my_user/bin"
|
Cuando vuelva a iniciar la sesión, su variable PATH será actualizada.
Específicas de sesión
En ocasiones, se requieren definiciones aún más estrictas. Puede querer usar binarios
de un directorio temporal que ha creado sin tener que usar la trayectoria completa
a los binarios o sin editar ~/.bashrc. Para estos
momentos necesitará esto.
En este caso, puede definir la variable PATH en su sesión activa
usando el comando export. Mientra no cierre la sesión, la variable
PATH usará los valores temporales.
Listado de Código 3.2: Definiendo una variable específica a la sesión |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
[ << ]
[ < ]
[ Inicio ]
[ > ]
[ >> ]
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|