Cómo arreglar la configuración regional en Debian Squeeze

17

Ocasionalmente obtengo errores de configuración regional y he intentado ejecutar dpkg-reconfigure locales para solucionar el problema. Aquí está la salida:

:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Busqué / usr / bin / locale pero no existe en mi sistema. ¿Necesito crearlo? ¿Qué pongo ahí?

También encontré una pregunta relacionada que dice que la causa de su problema estaba en el archivo sshd_config. El archivo tenía la siguiente entrada:

AcceptEnv LANG LC_*

Me preocupa principalmente que pueda causar problemas para mi VPS, de lo contrario, si no es nada importante, estaré encantado de ignorar el problema. ¿Qué tengo que hacer? ¡Gracias!

blogjunkie
fuente
Este mismo problema (LC_CTYPE = UTF-8, que está mal) puede suceder cuando inicia sesión a través de ssh desde una Mac a un cuadro de Linux, y su terminal establece automáticamente las variables de entorno. Hay una casilla de verificación para eso. Desactívala y listo. En iTerm está en el perfil-> Pestaña Terminal.
raarts
Parece que hay un error con alguna distribución basada en Debian (incluido ubuntu). Usar fr_FR.UTF-8 estaba dando problemas (y el entorno local existía). Hacer una locale-gen frcompilación de todos los entornos locales fr (fr_BE, fr_CH, etc.) resuelve el problema. Quizás lo intentelocale-gen en
Antony Gibbs

Respuestas:

10

primero:

sudo apt-get purge locales

luego:

sudo aptitude install locales

y el famoso:

sudo dpkg-reconfigure locales

Esto libera el sistema de configuraciones regionales, luego vuelve a instalar las configuraciones regionales y degrada libc6 de 2.19 a 2.13, que es el problema. Luego configura las configuraciones regionales nuevamente.

tkjef
fuente
Tengo exactamente el mismo problema. Entonces, con esta respuesta e incluyendo los repositorios jessie, podría instalar localessin rebajar libc6.
shgnInc
esto no ayudó
aexl
8

Si esto sucede cuando se envía SSH a su caja, pero no en la consola, intente reconfigurar su cliente ssh (en su máquina local). En Mac OS X, por ejemplo, edite / private / etc / ssh_config y comente

# SendEnv LANG LC_*

Gracias a la publicación de bredman en el tablero de anuncios de Rasberry Pi .

Adrian Zaugg
fuente
Este archivo ahora: / private / etc / ssh / ssh_config
b4d
7

Tuve este problema durante mucho tiempo y todos los consejos habituales sobre dpkg-reconfigure locales, locale-gen, etc. no ayudaron. Así que jugué un poco con las variables de entorno, ¡y lo que descubrí fue que el sistema no funcionaba con la LC_CTYPEvariable de entorno! UTF-8no es un valor válido para ello. Configurarlo para en_US.UTF-8arreglarlo.

Para hacer el cambio permanente, corrí

update-locale LC_CTYPE=en_US.UTF-8

que escribe a /etc/default/locale. Y luego reinicie el sistema para que surta efecto por completo.

Hongli Lai
fuente
Desafortunadamente, esto produceperl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). *** update-locale: Error: invalid locale settings: LC_CTYPE=en_US.UTF-8
aexl
2

He visto esto antes en instalaciones antiguas de Debian, y aunque es molesto, nunca lo he visto causar un problema.

Si

  /usr/bin/locale 

falta, intente (como root):

  apt-get install libc-bin

eso debería instalar libc-bin, proporcionando / usr / bin / locale.

Esa línea AcceptEnv en su sshd_config es bastante estándar, y no debería ser la causa de su problema aquí.

Chad Feller
fuente
libc-bin ya estaba instalado, así que lo actualicé e intenté dpkg-reconfigure localesvolver a ejecutarlo . Sin alegría :(
blogjunkie
¿Existe / usr / bin / locale ahora? Si es así, ¿cuál es el resultado de: locale -ay qué hay dentro /etc/default/locale?
Chad Feller
El contenido de `/ etc / default / locale ': # Archivo generado por update-locale LANG = en_US.UTF-8
blogjunkie
locale -ame da: locale: No se puede establecer LC_CTYPE en el locale predeterminado: No existe tal archivo o directorio C en_US.utf8 POSIX
blogjunkie
apt afirmaba que libc-bin estaba instalado, pero faltaba al menos un archivo (/ usr / bin / locale), y la reinstalación de libc-bin parece haber solucionado eso. Se puede tratar apt-get install --reinstall locales? Luego, para una buena medida, intente locale-gen, que regenerará cualquier configuración regional que no esté comentada /etc/locale.gen(debe tener una línea como en_US.UTF-8 UTF-8). Después de esto, vea si locale -afunciona.
Chad Feller
2

Hizo lo siguiente, como Manoj, pero lo agregó a # ~ / .bashrc:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8
Hauge
fuente
1

Si recibe los errores mientras ssh'ing a un sistema remoto, y no desea modificar el sistema remoto (cambiando el sshd_config, por ejemplo), puede hacer lo siguiente en su sistema local (suponiendo bash)

export LC_ALL=en_US
export LANGUAGE=en_US

y entonces ssh user@remote

Manoj Thulasidas
fuente
1

En mi nueva instalación de Debian (mínimo) las configuraciones regionales faltaban por completo. Sin embargo, instalarlo ( aptitude install locales) y ejecutarlo locale-genfuncionó. Entonces, muchachos, hagan lo que mencionó Chad Feller, pero localesprimero verifiquen si tienen el paquete instalado.

Achim Sperling
fuente
0

Si deshabilitó la autenticación PAM para ssh in /etc/ssh/sshd_config( UsePAM no), la configuración responsable /etc/pam.d/loginno es efectiva:

session required pam_env.so readenv=1 envfile=/etc/default/locale

El resultado: /etc/default/localeparece no tener efecto.

Por lo tanto, debe configurar su cliente para enviar los vars LANG o exportar los vars env en los scripts de perfil como ~/.profile, ~/bashrcetc.

Más: http://wiki.debian.org/Locale#Standard

Jan-Philip Loos
fuente
0

Estaba usando VPS alemán y no pude cambiar la configuración regional porque no había un paquete de idioma inglés instalado.

Después de instalar finalmente pude cambiar la configuración regional

aptitude install language-pack-en
valentt
fuente
0

en sistemas Debian esto resolverá su problema:

apt-get install locales-all

en los sistemas Ubuntu instale un paquete de idioma específico, por ejemplo:

apt-get install language-pack-en

locale-gen en_US.UTF-8

Geza
fuente
0

Mac conectándose a una nueva instalación de Debian 10. Ninguna de las respuestas buscó en Google Stack Exchange ayudó. Esto es lo que hizo (y también fue sencillo y confiable):

sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config

Ejecute esto en su cuadro de Debian y evitará que el terminal de mac de conexión estropee las configuraciones regionales del servidor ( más información ).

Como beneficio adicional, eso incluso puede mejorar la seguridad del servidor.

aexl
fuente