Variables de entorno (locales) en Ubuntu

Hace tiempo subí un apunte para indicar cómo se podían definir variables de entorno en Ubuntu. El método explicaba un sistema válido para variables transversales de sistema (para todas las sessiones de usuario igual) pero requería privilegios de administrador (usuario root o permisos de sudo). Una limitación que no siempre podemos superar.

Este post intenta mirar el mismo tema desde un punto de vista más usuario-céntrico, es decir, setear variables de sistema para un usuario concreto sin necesidad de privilegios de administrador. Estas variables tienen otras ventajas (a parte de no requerir privilegios de administrador) que no podemos olvidar; por ejemplo: para cada usuario diferente del sistema podemos tener las mismas variables con valores diferentes.

Dichas variables se setean mediante la modificación del archivo .bashrc. Este archivo se aloja en el directorio del usuario (/home/usuario/.bashrc) y se ejecuta cuando el usuario abre una sesión en el sistema. Para añadir una variable de sesión sólo tenemos que añadir una línea al final del archivo con el código que normalmente utilizaríamos en BASH para realizar esta acción:

export VARIABLE=VALOR

Notamos entonces que el procedimiento no es almacenar una variable de entorno sino que cada vez que el usuario acceda al sistema se ejecutará un comando que la añada.

Para confirmar que las variables se han seteado de forma correcta, en el siguiente login del usuario, podemos ejecutar el comando que aparece a continuación y repasar la lista que se nos muestra en pantalla para localizar nuestra variable.

$> printenv

NOTA: Se puede forzar la ejecución de este archivo sin necesidad de reiniciar el sistema o desconectar al usuario con el siguiente comando:

$> source /home/usuario/.bashrc

Este es un tema sobre el que estoy seguro que ya se han escrito mil manuales y sus correspondientes entradas en blogs y foros pero espero que os ayude igualmente :-)

Leave a Reply

Your email address will not be published. Required fields are marked *