Toolbox: Problema de configuración regional, es necesario instalar el paquete glibc-langpack- *

Creado en 23 feb. 2019  ·  10Comentarios  ·  Fuente: containers/toolbox

al usar stack para construir un programa haskell dentro de la caja de herramientas de Fedora, obtuve un error extraño que podía rastrear a un problema de configuración regional. Hubo otros problemas, como que less no mostraba secuencias de bytes UTF-8. La ejecución de locale mostró errores:

$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

La instalación del paquete glibc-langpack-fr (en mi caso) resolvió el problema. Eso probablemente debería realizarse cuando se crea la caja de herramientas por primera vez. O podría ser parte de la documentación.

1. Bug 5. Good First Issue 5. Help Wanted

Comentario más útil

Ejecutar $ toolbox run locale en el host produce:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
(...)

Parece ser inherente a la configuración regional del host, que no es el caso cuando se ejecuta $ locale dentro de una sesión de shell en contenedor:

$ toolbox enter
⬢$ locale
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
(...)

Si bien no estoy seguro de si se trata de un problema separado, la instalación de glibc-langpack-en o glibc-all-langpacks soluciona. Estoy en Fedora 31 Silverblue.

Todos 10 comentarios

Sí, también he oído hablar de una rareza similar reportada por usuarios checos, pero como locale parecía funcionar bien para variantes de en (no solo en_US ), me olvidé de eso.

¿Sabe cómo se instala el paquete glibc-langpack-fr en su host Fedora?

Gracias a @halfline , entiendo esto un poco mejor.

Es probable que reemplazar glibc-minimal-langpack con glibc-all-langpacks resuelva los problemas más urgentes:

# dnf -y swap glibc-minimal-langpack glibc-all-langpacks

Creo que una solución completa también implicaría eliminar /etc/rpm/macros.image-language-conf y reinstalar todos los paquetes con traducciones faltantes. Eso implicaría algo similar al # 55, que deshace los efectos de tsflags=nodocs .

También sería útil tener un caso de prueba concreto que pueda usar para validar mis experimentos.

Una solución o solución alternativa más simple por ahora podría ser simplemente ejecutar podman con LANG=C.utf8 .
Creo que eso debería solucionar la mayoría de los problemas actuales.

El caso de prueba minimalista es solo para ejecutar locale :

<strong i="10">@toolbox</strong> ~ $ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=ja_JP.UTF-8
:

No sé si esto está siguiendo este problema o no, pero en una caja de herramientas reciente, la configuración regional ya no se conserva del host. ahora obtengo la configuración regional en_US.UTF-8 , sin error de configuración regional y los mismos problemas de vim que en # 14 (excepto que no se ejecuta dentro de tmux)

Actualmente, Toolbox solo instala glibc-langpack-en de forma predeterminada.
editar Creo que esto se hereda de la imagen fedora:30 .

En el último fedora: 30 (y fedora: rawhide) se eliminó glibc-langpack-en .
por ejemplo, esto afecta a https://bodhi.fedoraproject.org/updates/FEDORA-CONTAINER-2019-724ac61633

En realidad, me parece que el problema real es que fedora: 30 /etc/locale.conf tiene LANG="en_US.UTF-8" :
asumiendo que el cambio anterior es intencional.
Podríamos solucionarlo con sed -e 's/en_US/C' /etc/locale.conf .

De acuerdo, parece cubierto por https://bugzilla.redhat.com/show_bug.cgi?id=1727489

Puede confirmar que la instalación de glibc-langpack-en o glibc-alll-langpacks soluciona este problema. Tenga en cuenta que el último pesa alrededor de 200 mb, que es la mitad del peso del recipiente.

Ejecutar $ toolbox run locale en el host produce:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
(...)

Parece ser inherente a la configuración regional del host, que no es el caso cuando se ejecuta $ locale dentro de una sesión de shell en contenedor:

$ toolbox enter
⬢$ locale
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
(...)

Si bien no estoy seguro de si se trata de un problema separado, la instalación de glibc-langpack-en o glibc-all-langpacks soluciona. Estoy en Fedora 31 Silverblue.

¿Fue útil esta página
0 / 5 - 0 calificaciones