Entorno de configuration correcta

Estoy usando zsh y gdm para ejecutar gnome. Hace algún time descubrí que las variables no están configuradas correctamente. Por ejemplo LANG / LC_ALL son incorrectos ( "" vez de en_GB.UTF-8 ).

.zshrc el .zshrc en .zshrc y .profile . En este último establezco las variables de entorno, pero ¿cómo puedo configurar las variables antes de que comience la session? Intenté algunas opciones ( .xinitrc , .xsessionrc ) pero ninguna parecía funcionar.

Editar Para aclarar: utilicé .profile y lo .profile manualmente en .zshrc . No cambia la pregunta de todos modos.

Solutions Collecting From Web of "Entorno de configuration correcta"

La forma más sencilla es devise una máquina del time, visitar a las distintas personas que diseñaron los files de inicio de shell y decirles que distingan claramente entre tres cosas:

  • configuration de session, p. ej. variables de entorno;
  • lanzamiento de session, es decir, por ejemplo, iniciar un shell de command-line o un gestor de windows o ejecutar startx ;
  • initialization de shell, por ejemplo, alias, prompt, key bindings.

No es demasiado difícil get session vs. shell directamente de una manera portátil: la initialization de inicio de session entra en .profile (o .zprofile , o .login ), la initialization de shell va en .bashrc o .zshrc . Anteriormente escribí sobre .bash_profile , zsh y otros shells , más sobre la portabilidad (principalmente sobre bash) , más sobre quién lee .profile .

Un problema restante es distinguir entre la configuration de la session y el inicio de la session. En la mayoría de los casos, ~/.profile se ejecuta cuando ~/.profile session y puede duplicar ambos, pero hay excepciones:

  • Si su shell de inicio de session es (t) csh o zsh, ~/.login y ~/.zprofile se obtienen de fonts en lugar de ~/.profile . Lo mismo para bash y ~/.bash_profile , pero esto se resuelve fácilmente obteniendo ~/.profile de ~/.bash_profile .
  • Si ~/.profile session bajo un administrador de visualización (xdm, gdm, kdm, …), si su ~/.profile se lee depende de la versión del progtwig, de su distribución (Linux u otros), y del tipo de session que elija .
    • Si count con el administrador de pantalla para iniciar una session, su .profile debe establecer variables de entorno pero no iniciar una session (por ejemplo, un administrador de windows).
    • El file de configuration tradicional para las sesiones X es ~/.xsession , que realiza tanto la configuration de la session como el inicio de la session. Entonces el file puede ser esencialmente . ~/.xsession; . ~/.xinitrc . ~/.xsession; . ~/.xinitrc . ~/.xsession; . ~/.xinitrc . Algunas distribuciones fuente ~/.profile before ~/.xsession . Las distribuciones modernas solo fuente ~/.xsession cuando selecciona una session "personalizada" del administrador de visualización, y dicha session no siempre está disponible.
    • Su administrador de session puede tener su propia forma de configurar variables de entorno. (Es una parte opcional de su entorno de escritorio, elegido por usted a través de un file de configuration o seleccionando un tipo de session al iniciar session, no lo confunda con los scripts de inicio de session proporcionados por el administrador de visualización, que se ejecutan bajo su usuario pero elegido en todo el sistema. Sí, es un desastre).

En resumen, ~/.profile es el lugar correcto para las variables de entorno. Si no se lee, intente ~/.xsession desde ~/.xsession (e inicie los progtwigs X desde allí), o busque un método específico del sistema (que puede depender de su distribución, administrador de visualización, si lo hay, tipo de session si administrador de visualización, y entorno de escritorio o administrador de session).

En la documentation de Gentoo, se encuentra el artículo Gentoo Linux Localization Guide . El Capítulo 3 trata sobre la configuration de la configuration regional.

La mayoría de los usuarios solo configuran la variable LANG en forma global. Este ejemplo es para una configuration regional unicode alemana:

Listado de Código 3.1: Establecer la configuration regional pnetworkingeterminada del sistema en /etc/env.d/02locale

 LANG="en_GB.UTF-8" 

En mi LANG Gentoo se establece en este file y todo está funcionando correctamente …

 pbm@tauri ~ $ cat /etc/env.d/02locale LANG="pl_PL.UTF-8" pbm@tauri ~ $ locale LANG=pl_PL.UTF-8 LC_CTYPE="pl_PL.UTF-8" LC_NUMERIC="pl_PL.UTF-8" LC_TIME="pl_PL.UTF-8" LC_COLLATE="pl_PL.UTF-8" LC_MONETARY="pl_PL.UTF-8" LC_MESSAGES="pl_PL.UTF-8" LC_PAPER="pl_PL.UTF-8" LC_NAME="pl_PL.UTF-8" LC_ADDRESS="pl_PL.UTF-8" LC_TELEPHONE="pl_PL.UTF-8" LC_MEASUREMENT="pl_PL.UTF-8" LC_IDENTIFICATION="pl_PL.UTF-8" LC_ALL=