Estoy usando zsh y gdm para ejecutar gnome. Hace algún tiempo descubrí que las variables no están establecidas correctamente. Por ejemplo, LANG / LC_ALL son incorrectos (en ""
lugar de en_GB.UTF-8
).
Lo dividí .zshrc
en .zshrc
y .profile
. En este último, configuro las variables de entorno, pero ¿cómo puedo configurar las variables antes de que comience la sesión? Intenté algunas opciones ( .xinitrc
, .xsessionrc
) pero ninguna parecía funcionar.
Editar Para aclarar - Solía .profile
y manual que lo adquirieron en .zshrc
. No cambia la pregunta de todos modos.
gnome
desktop-environment
gentoo
gdm
environment-variables
Maciej Piechotka
fuente
fuente
.profile
No está cargado en absoluto, o hay algo más que sobrescribe las variables locales? (Prueba a poner alguna otra variable, comoexport MACIEJ_PROFILE=yes
para asegurarse.set -x
En.profile
puede ser una buena manera de comprobar lo que está siendo ejecutado en y después.profile
, si se lee en absoluto.) No hay ningún punto en la obtención.profile
de.zshrc
.ssh localhost zsh
? ¿Qué hay dessh localhost bash
? Si bash está bien pero no es zsh, tal vez pones algo/etc/zshenv
o~/.zshenv
(lo cual es casi siempre una mala idea).gnome-session
no tiene este conjunto de variedades.Respuestas:
La manera simple es inventar una máquina del tiempo, visitar a las diversas personas que idearon los archivos de inicio de shell y decirles que distingan claramente entre tres cosas:
startx
;No es demasiado difícil obtener sesión versus shell de una manera portátil: la inicialización del tiempo de inicio de sesión entra
.profile
(o.zprofile
, o.login
), la inicialización de shell entra.bashrc
o.zshrc
. He escrito anteriormente acerca.bash_profile
, zsh frente a otras conchas , más acerca de la portabilidad (sobre todo de golpe) , más sobre quién lee.profile
.Un problema pendiente es distinguir entre la configuración de la sesión y el inicio de la sesión. En la mayoría de los casos,
~/.profile
se ejecuta cuando inicia sesión y puede duplicarse como ambos, pero hay excepciones:~/.login
y~/.zprofile
se obtiene en lugar de~/.profile
. Lo mismo ocurre con bash y~/.bash_profile
, pero esto se resuelve fácilmente mediante el abastecimiento~/.profile
de~/.bash_profile
.~/.profile
lectura depende de la versión del programa, de su distribución (Linux o de otro tipo) y del tipo de sesión que elija..profile
debe establecer variables de entorno pero no iniciar una sesión (por ejemplo, un administrador de ventanas).~/.xsession
, tanto la configuración de la sesión como el inicio de la sesión. Entonces el archivo puede ser esencialmente. ~/.xsession; . ~/.xinitrc
. Algunas distribuciones fuente~/.profile
antes~/.xsession
. Las distribuciones modernas solo se originan~/.xsession
cuando selecciona una sesión "personalizada" desde el administrador de visualización, y dicha sesión no siempre está disponible.En resumen,
~/.profile
es el lugar adecuado para las variables de entorno. Si no se lee, intente obtenerlo~/.xsession
(e inicie sus programas X desde allí), o busque un método específico del sistema (que puede depender de su distribución, el administrador de pantalla si lo hay, el tipo de sesión si el administrador de pantalla y el entorno de escritorio o gerente de sesión).fuente
.xsession
fue el archivo que estaba buscando..profile
fuentes.bashrc
o similar, entonces se puede establecer de forma fiable las variables de entorno en.bashrc
las sesiones no sólo inicio de sesión, pero para los nuevos proyectiles que necesitan diferentes configuraciones, por ejemplo, si se inicia unaxterm
degnome-terminal
y quiere diversodircolors
..bashrc
su configuración anterior. Por ejemplo, si ha comenzado una instancia de Screen o Tmux con variables de entorno particulares, todo lo que configure.bashrc
anulará esta configuración.LS_COLORS
es un caso especial porque es realmente una configuración por terminal; idealmente debería ser configurado por el emulador de terminal, y configurarlo en un archivo shell rc es la mejor solución.En la documentación de Gentoo hay un artículo sobre la Guía de localización de Gentoo Linux . El Capítulo 3 trata sobre la configuración regional.
En mi Gentoo
LANG
está configurado en este archivo y todo funciona correctamente ...fuente
.bashrc
, lo cual es incorrecto (consulte mi respuesta y, en particular, superuser.com/questions/217431 ).env.d
es más universal.