¿Por qué configurar LANG=C interrumpe el inicio de sesión en la consola en CentOS 7?

¿Por qué configurar LANG=C interrumpe el inicio de sesión en la consola en CentOS 7?

Normalmente configuro todas mis configuraciones regionales en 'C'. Es a lo que estoy acostumbrado. Me gusta lsordenar las cosas como estoy acostumbrado durante las últimas décadas.

Así que imagina mi sorpresa y consternación cuando instalé LANG=Cmi .bashrcy ahora, cuando inicio sesión, no hay administrador de ventanas.

¿Se puede arreglar esto?

Actualizar:Puede ser LC_ALL=C. Uno de los dos lo está rompiendo. LC_COLLATE=Csoluciona algunas cosas, pero otras no.

-MI

Linux xxxx 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Respuesta1

Una de las características relevantes para el sistema afectado por la configuración local es lacodificacion de texto, o el "juego de caracteres" o la "página de códigos", tomado del parámetro LC_CTYPE. Aunque en muchas situaciones la codificación del texto viene dada por especificación (por ejemplo, las cadenas del protocolo D-Bus siempre son UTF-8), también hay muchos lugares donde la codificación no está especificada y debe tomarse de la configuración regional actual del sistema.

En particular,nombres de archivosse muestran con frecuencia según la codificación de texto local actual. Los programas escritos en Python 3, por ejemplo, utilizan la codificación local actual si el programa olvida especificar lo contrario.

La configuración regional 'C' implica codificación de texto ASCII de 7 bits (ANSI_X3.4-1968), y parte del problema puede ser que, si bien muchos programas (los escritos en C, generalmente) interpretan esto para permitir valores arbitrarios de 8 bits, También hay muchos programas que tienen una interpretación mucho más estricta yrechazarcualquier valor superior a 127 (es decir, no ASCII) no es válido. Puede ser que un error de decodificación sea causado por algún nombre de archivo, algún parámetro de configuración o algún otro archivo de texto.

De hecho, en este punto incluso encontrará programas que se niegan rotundamente a trabajar con una configuración regional que especifique la codificación de texto ASCII; algunos de ellos requieren específicamente UTF-8 (como gnome-terminal), y otros requieren cualquier 8- codificación de bits.

Si su distribución aplica el parche "C.UTF-8" a libc, utilícelo:

LANG=C.UTF-8

Si no es así, utilice uno de los siguientes:

LANG=en_US.UTF-8
LC_TIME=C
LC_COLLATE=C
LC_MESSAGES=C
IDIOMA=C
LC_CTYPE=es_US.UTF-8

(Puede ejecutar locale charmappara ver qué página de códigos está vigente según las variables de entorno actuales; en ambos casos debería decir UTF-8. Si elige la tercera opción, tenga cuidado con los programas con errores que miran directamente a $LANG en lugar de llamarnl_langinfo(CONFIGURACIÓN DE CÓDIGOS)como deberían hacerlo.)

información relacionada