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í .zshrcen .zshrcy .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 .profiley manual que lo adquirieron en .zshrc. No cambia la pregunta de todos modos.
gnome
desktop-environment
gentoo
gdm
environment-variables
Maciej Piechotka
fuente
fuente

.profileNo está cargado en absoluto, o hay algo más que sobrescribe las variables locales? (Prueba a poner alguna otra variable, comoexport MACIEJ_PROFILE=yespara asegurarse.set -xEn.profilepuede 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.profilede.zshrc.ssh localhost zsh? ¿Qué hay dessh localhost bash? Si bash está bien pero no es zsh, tal vez pones algo/etc/zshenvo~/.zshenv(lo cual es casi siempre una mala idea).gnome-sessionno 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.bashrco.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,
~/.profilese ejecuta cuando inicia sesión y puede duplicarse como ambos, pero hay excepciones:~/.loginy~/.zprofilese obtiene en lugar de~/.profile. Lo mismo ocurre con bash y~/.bash_profile, pero esto se resuelve fácilmente mediante el abastecimiento~/.profilede~/.bash_profile.~/.profilelectura depende de la versión del programa, de su distribución (Linux o de otro tipo) y del tipo de sesión que elija..profiledebe 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~/.profileantes~/.xsession. Las distribuciones modernas solo se originan~/.xsessioncuando selecciona una sesión "personalizada" desde el administrador de visualización, y dicha sesión no siempre está disponible.En resumen,
~/.profilees 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
.xsessionfue el archivo que estaba buscando..profilefuentes.bashrco similar, entonces se puede establecer de forma fiable las variables de entorno en.bashrclas sesiones no sólo inicio de sesión, pero para los nuevos proyectiles que necesitan diferentes configuraciones, por ejemplo, si se inicia unaxtermdegnome-terminaly quiere diversodircolors..bashrcsu configuración anterior. Por ejemplo, si ha comenzado una instancia de Screen o Tmux con variables de entorno particulares, todo lo que configure.bashrcanulará esta configuración.LS_COLORSes 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
LANGestá 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.des más universal.