No se puede generar la configuración regional en_US.UTF-8

8

He estado tratando de configurar mi configuración regional en_US.UTF-8sin ningún éxito. Basado en otras respuestas en Internet, primero debería generar la configuración regional con

sudo locale-gen en_US.UTF-8

Y luego aplicarlo con

sudo dpkg-reconfigure locales

Sin embargo, correr locale-genhace algo extraño:

user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
Generation complete.

Como puede ver, en realidad nunca genera UTF-8, sino que sigue recurriendo a ISO-8859-1. Nunca puede llegar a establecer LC_ALLa en_US.UTF-8, probablemente porque no puede generar.

¿Estoy haciendo algo mal? Estoy ejecutando Debian 8.1.

Erik S
fuente

Respuestas:

28

Intentó aplicar una receta para Ubuntu en Debian. Eso generalmente funciona, pero en este caso específico no lo hace.

Ubuntu se deriva de Debian, y no cambia mucho aparte del instalador y la GUI. El locale-gencomando es una de esas pocas cosas que cambia. No se porque.

Bajo Debian, el locale-gencomando no toma argumentos y regenera las definiciones locales compiladas de acuerdo con la lista configurada de configuraciones regionales. Para modificar la selección de configuraciones regionales que desea usar, edite el archivo y /etc/locale.genluego ejecute el locale-gencomando. Alternativamente, ejecute dpkg-reconfigure localescomo root, seleccione las configuraciones regionales adicionales que desee (y deseleccione las que no desea), y presione OK.

En Ubuntu, si ejecuta el locale-gencomando sin argumentos, regenera las definiciones locales compiladas de acuerdo con la lista configurada de configuraciones regionales. Pero si pasa algunos argumentos, se agregan a la lista y se generan de inmediato. La lista de configuraciones regionales se mantiene en /var/lib/locales/supported.d/local. La ejecución dpkg-reconfigure localessolo regenera las configuraciones regionales compiladas sin darle la oportunidad de modificar la selección.

En resumen, para agregar en_US.UTF-8a la lista de configuraciones regionales utilizables:

  • Debian, interactivo: dpkg-reconfigure locales
  • Debian, automatizado: sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen
  • Ubuntu, automatizado: locale-gen en_US.UTF-8
Gilles 'SO- deja de ser malvado'
fuente
Entonces, ¿cómo agregaría paquetes dpkg-reconfigure? Obtuve la interfaz interactiva, pero al seleccionar un elemento con enter, no se instaló.
Erik S
@ ErikDolor No entiendo tu pregunta. A menos que haya cambiado la configuración de debconf, dpkg-reconfigure localesaparece un cuadro de diálogo de modo de texto, con una casilla de verificación para cada configuración regional que se puede generar. Desplácese hacia abajo en_US.UTF-8, verifíquelo y presione el botón OK.
Gilles 'SO- deja de ser malvado'
Intenté comprobarlo con el botón Intro, pero aparentemente funcionó como presionar OK.
Erik S
2
@ErikDolor Oh. Presione la barra espaciadora para alternar una casilla de verificación.
Gilles 'SO- deja de ser malvado'
También funciona para raspbian jessie
Neo_Returns
5

Después de leer el archivo man para locale-gen en lugar de confiar ciegamente en Internet, descubrí que en locale-genrealidad toma las configuraciones regionales para generar /etc/locale.gen. Al descomentar en_US.UTF-8allí, logré generarlo.

Erik S
fuente
sed -i '/^#.* es_ES / s / ^ # //' /etc/locale.gen Si está usando docker, esto podría ser útil
Borjante
¡La ÚNICA respuesta que me funcionó después de recorrer Internet durante días! ¡Muchas gracias!
I.Am.A.Guy