¿Cuáles son los lugares correctos para:
- ¿Variables de entorno globales destinadas a afectar a todos los usuarios?
- Variables de entorno específicas del usuario?
¿Cuáles son los lugares correctos para:
Creo que la página wiki de la comunidad sobre variables de entorno te ayudará a resolver
Para agregar a la respuesta de sagarchalise, puedo resumir lo que sugiere el enlace como lugares apropiados para la configuración.
Para configuraciones globales, variables de entorno de todo el sistema
/etc/environment
/etc/profile
o/etc/bash.bashrc
De la página:
Usar
/etc/profile
es un camino muy Unix-y, pero su funcionalidad se reduce en Ubuntu. Solo existe para apuntar/etc/bash.bashrc
y recopilar entradas de/etc/profile.d
.En mi sistema, la única entrada de entrada interesante en profile.d es
/etc/profile.d/bash_completion.sh
.Para configuraciones locales o por usuario
Se recomienda una versión anterior de la página de Ubuntu
~/.pam_environment
, pero la página actualmente sugiere que si eso no funciona, debe usar~/.bash_profile
o~./bash_login
- Si existe uno de estos, bash lo ejecuta en lugar de~/.profile
cuando bash se inicia como un shell de inicio de sesión. Bash preferirá~/.bash_profile
a~/.bash_login
. [...] Estos archivos no influirán en una sesión gráfica de forma predeterminada ".~/.bashrc
- "... puede ser el lugar más fácil para establecer variables".fuente
/etc/environment
y cuándo? Parece que no funciona con cron, incluso cuando se usaSHELL=/bin/bash
/etc/environment
gustenJAVA_HOME="/opt/java"
yANT_HOME="/opt/ant"
cómo hacerloTienes:
que en Lucid y Maverick corren
si está presente, y si el shell del usuario es bash:
Para el entorno del usuario, existe una matriz confusa específica para el shell y si se considera un "shell de inicio de sesión". Si el shell es bash:
para sh / dash:
para zsh, ni siquiera voy a tratar de darle sentido a esto .
fuente
Como se recomienda en https://help.ubuntu.com/community/EnvironmentVariables :
Las variables de entorno global destinadas a afectar a todos los usuarios deben entrar
/etc/environment
.Se deben establecer variables de entorno específicas del usuario
~/.pam_environment
.Evite el perfil y los archivos rc para configurar variables de entorno en Ubuntu. Me han causado más dolores de cabeza de lo que valen.
Sin embargo, esto es más fácil decirlo que hacerlo;)
Es posible que se encuentre con la misma brecha de configuración que existía para mí. Vea la solución alternativa para el hogar encriptado a continuación.
Mi
~/.pam_environment
:¿Por qué el feo camino estático?
${PATH}
No funcionaría para mí Bloqueé mi inicio de sesión varias veces tratando de solucionarlo, así que me quedo con la fea copia estática de los valores predeterminados :)Solución alternativa para carpetas de inicio cifradas
En las versiones de Ubuntu hasta Precise 12.04 Beta 2, si está utilizando un directorio de inicio cifrado, deberá modificarlo
/etc/pam.d/common-session
para que se cargue~/.pam_environment
. Aparentemente, esta solución funciona para versiones anteriores, pero no la he probado.Guenther Montag (g-montag) escribió el 2010-08-19:
Adaptado de mi respuesta en Super Usuario: https://superuser.com/a/408373/66856
fuente
${HOME}
tampoco funcionará. No hay expansión en.pam_environment
..pam_environment
, peroHOME
generalmente no se establece tan temprano. Si esa línea hubiera leídoDEFAULT=${PATH}/Applications/jdk
, habría visto el valor dePATH
insertado en ella.