Comment fixer les paramètres régionaux dans Debian Squeeze

17

Je reçois parfois des erreurs de paramètres régionaux et j'ai essayé d'exécuter dpkg-reconfigure locales pour résoudre le problème. Voici la sortie:

:~$ 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").

J'ai recherché / usr / bin / locale mais il n'existe pas sur mon système. Dois-je le créer? Que dois-je y mettre?

J'ai également trouvé une question connexe qui dit que la cause de son problème était dans le fichier sshd_config. Le fichier avait l'entrée suivante:

AcceptEnv LANG LC_*

Je suis principalement préoccupé par le fait que cela puisse causer des problèmes pour mon VPS, sinon si ce n'est rien de majeur, je serai heureux d'ignorer le problème. Que devrais-je faire? Merci!

blogjunkie
la source
Ce même problème (LC_CTYPE = UTF-8, ce qui est faux) peut se produire lorsque vous vous connectez via ssh d'un Mac à une boîte Linux, et votre terminal définit automatiquement les variables d'environnement. Il y a une case à cocher pour cela. Décochez-la et vous êtes prêt à partir. Dans iTerm, c'est dans le profil-> Onglet Terminal.
raarts
Il semble y avoir un bogue avec certaines distributions basées sur Debian (y compris ubuntu). L'utilisation de fr_FR.UTF-8 posait des problèmes (et l'environnement local existait). Faire un locale-gen frserait construire tous les paramètres régionaux fr (fr_BE, fr_CH etc ...) résout le problème. Essayez peut-êtrelocale-gen en
Antony Gibbs

Réponses:

10

premier:

sudo apt-get purge locales

ensuite:

sudo aptitude install locales

et le fameux:

sudo dpkg-reconfigure locales

Cela débarrasse le système de paramètres régionaux, puis réinstalle les paramètres régionaux et rétrograde libc6 de 2.19 à 2.13, ce qui est le problème. Configure ensuite à nouveau les paramètres régionaux.

tkjef
la source
J'ai exactement le même problème. Donc, par cette réponse et en incluant les référentiels Jessie, j'ai pu installer localessans rétrograder libc6.
shgnInc
cela n'a pas aidé
aexl
8

Si cela se produit lors de la connexion SSH à votre box, mais pas sur la console, essayez de reconfigurer votre client ssh (sur votre machine locale). Sur Mac OS X par exemple, éditez / private / etc / ssh_config et commentez

# SendEnv LANG LC_*

Merci au poste de bredman sur le babillard Rasberry Pi .

Adrian Zaugg
la source
Ce fichier maintenant: / private / etc / ssh / ssh_config
b4d
7

J'ai eu ce problème pendant longtemps et tous les conseils habituels sur dpkg-reconfigure locales, locale-gen, etc. n'ont pas aidé. J'ai donc joué un peu avec les variables d'environnement, et ce que j'ai trouvé, c'est que le système fonctionnait sur la LC_CTYPEvariable d'environnement! UTF-8n'est pas une valeur valide pour cela. Le paramétrer pour le en_US.UTF-8corriger.

Pour rendre le changement permanent, j'ai couru

update-locale LC_CTYPE=en_US.UTF-8

qui écrit /etc/default/locale. Ensuite, redémarrez le système pour qu'il prenne pleinement effet.

Hongli Lai
la source
Malheureusement, cela donneperl: 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

J'ai déjà vu cela sur des installations Debian plus anciennes, et bien qu'ennuyeux, je ne l'ai jamais vu poser de problème.

Si

  /usr/bin/locale 

est manquant, essayez (en tant que root):

  apt-get install libc-bin

qui devrait installer libc-bin, en fournissant / usr / bin / locale.

Cette ligne AcceptEnv dans votre sshd_config est assez standard et ne devrait pas être la cause de votre problème ici.

Chad Feller
la source
libc-bin était déjà installé, je l'ai donc mis à jour et réessayé dpkg-reconfigure locales. Pas de joie :(
blogjunkie
Est-ce que / usr / bin / locale existe maintenant? Si oui, quelle est la sortie de: locale -aet que contient-elle /etc/default/locale?
Chad Feller
Le contenu de `/ etc / default / locale ': # Fichier généré par update-locale LANG = en_US.UTF-8
blogjunkie
locale -ame donne: locale: Impossible de définir LC_CTYPE sur les paramètres régionaux par défaut: Aucun fichier ou répertoire C en_US.utf8 POSIX
blogjunkie
apt prétendait que libc-bin était installé, mais au moins un fichier manquait (/ usr / bin / locale), et la réinstallation de libc-bin semble avoir corrigé cela. Pouvez-vous essayer apt-get install --reinstall locales? Ensuite, pour faire bonne mesure, essayez locale-gen, qui régénérera tous les paramètres régionaux non commentés /etc/locale.gen(vous devriez avoir une ligne comme en_US.UTF-8 UTF-8). Après cela, voyez si cela locale -afonctionne.
Chad Feller
2

A fait ce qui suit, en tant que Manoj, mais l'a ajouté à # ~ / .bashrc:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8
Jauge
la source
1

Si vous obtenez des erreurs lors de la connexion à un système distant et que vous ne souhaitez pas modifier le système distant (en modifiant le sshd_config, par exemple), vous pouvez effectuer les opérations suivantes sur votre système local (en supposant que bash)

export LC_ALL=en_US
export LANGUAGE=en_US

puis ssh user@remote

Manoj Thulasidas
la source
1

Sur ma nouvelle installation Debian (minimale), les paramètres régionaux étaient complètement manquants. L'installer ( aptitude install locales) et l'exécuter ont locale-genfait l'affaire. Alors, faites comme Chad Feller, mais vérifiez d'abord que le paquet est localesinstallé.

Achim Sperling
la source
0

Si vous avez désactivé l'authentification PAM pour ssh dans /etc/ssh/sshd_config( UsePAM no), la configuration responsable dans /etc/pam.d/loginn'est pas effective:

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

Le résultat: /etc/default/localesemble n'avoir aucun effet.

Vous devez donc configurer votre client pour envoyer les vars LANG ou exporter les vars env dans les scripts de profil comme ~/.profile, ~/bashrcetc.

Plus: http://wiki.debian.org/Locale#Standard

Jan-Philip Loos
la source
0

J'utilisais le VPS allemand et je ne pouvais pas changer les paramètres régionaux car aucun pack de langue anglaise n'était installé.

Après l'installation, je pouvais enfin changer les paramètres régionaux

aptitude install language-pack-en
valentt
la source
0

sur les systèmes Debian, cela résoudra votre problème:

apt-get install locales-all

sur les systèmes Ubuntu, installez un module linguistique spécifique, par exemple:

apt-get install language-pack-en

locale-gen en_US.UTF-8

Geza
la source
0

Mac se connectant à une nouvelle installation de Debian 10. Aucune des réponses googlé partout dans Stack Exchange n'a aidé. Voici ce qui a fait (et était simple et fiable aussi):

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

Exécutez cela sur votre boîte Debian et cela empêchera le terminal mac de connexion de gâcher les paramètres régionaux du serveur ( plus d'informations ).

En prime, cela peut même améliorer la sécurité du serveur.

aexl
la source