¿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/profileo/etc/bash.bashrcDe la página:
Usar
/etc/profilees un camino muy Unix-y, pero su funcionalidad se reduce en Ubuntu. Solo existe para apuntar/etc/bash.bashrcy 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_profileo~./bash_login- Si existe uno de estos, bash lo ejecuta en lugar de~/.profilecuando bash se inicia como un shell de inicio de sesión. Bash preferirá~/.bash_profilea~/.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/environmenty cuándo? Parece que no funciona con cron, incluso cuando se usaSHELL=/bin/bash/etc/environmentgustenJAVA_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-sessionpara 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, peroHOMEgeneralmente no se establece tan temprano. Si esa línea hubiera leídoDEFAULT=${PATH}/Applications/jdk, habría visto el valor dePATHinsertado en ella.