¿Cómo configurar variables de entorno y RUTA para toda la sesión?

¿Cómo configurar variables de entorno y RUTA para toda la sesión?

He visto a otras personas en Internet que también tienen este problema, pero las soluciones no han sido concluyentes, así que quería llamar la atención nuevamente.

Según esta página en la wiki de Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables La forma recomendada de configurar variables de entorno para toda la sesión es modificar ~/.pam_environment.

Este es mi objetivo:

  1. Quiero crear una variable de entorno ANDROID_HOME que tenga como valor una ruta a una ubicación determinada en mi carpeta de inicio.
  2. Quiero agregar dos carpetas a la RUTA.

Aquí esta lo que hice. El archivo ~/.pam_environment no existía, así que lo creé y le agregué las siguientes líneas:

ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

Cerré la sesión y volví a iniciarla.

El resultado no es el esperado. Abrí la terminal y repetí $ANDROID_HOME y eso es lo que obtuve:

${HOME}/Android/Sdk

Parece que ${HOME}no se reemplaza con la ruta de mi carpeta de inicio. ¿Por qué es así?

Observe cd-ing a $ANDROID_HOME (Android/Sdk realmente existe en mi carpeta de inicio):

anvar@crazymachine:~$ cd $ANDROID_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory

También hacer eco de $PATH me dio esto:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools

¿Por qué las variables no se sustituyen por sus valores como sería lógico suponer, especialmente cuando el ejemplo en el sitio antes mencionado dio la impresión de que las variables se pueden usar dentro de los valores?

¿Cuál es la forma correcta de configurar variables de entorno para toda la sesión a las que también tengan acceso los programas GUI?

Respuesta1

El ejemplo enla wiki, para configurar variables de sesión a través de ~/.pam_environment, afirma en una nota:

La sintaxis utilizada para modificar PATH, cuya sintaxis difiere de la de los archivos de script, es necesaria para que funcione la expansión de variables.

Por lo tanto, tu primera fila debería verse así:

ANDROID_HOME DEFAULT=${HOME}/Android/Sdk

Respuesta2

Dos sugerencias:

1º - la forma de sus declaraciones medioambientales debe ser:

ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

segundo, coloque sus nuevas declaraciones ambientales en~/.profile

Respuesta3

Creo que es posible que necesites una opción export HOMEdespués de configurar la variable de ruta (en ~/.bashrc lo hacemos)

información relacionada