566 votes

Comment puis-je résoudre mon problème de localisation ?

Je reçois ce message chaque fois que je fais quelque chose comme démarrer ou arrêter un service.

perl: avertissement: échec du réglage de la locale.
perl: avertissement: Merci de vérifier que vos paramètres de locale :
        LANGUAGE = "en_US:en",
        LC_ALL = (unset),
        LC_MESSAGES = "en_US.UTF-8",
        LANG = "en_US.UTF-8"
    sont pris en charge et installés sur votre système.
perl: avertissement: Retour au réglage de locale standard ("C").
locale: Impossible de définir LC_CTYPE sur la locale par défaut : Aucun fichier ou dossier de ce type
locale: Impossible de définir LC_MESSAGES sur la locale par défaut : Aucun fichier ou dossier de ce type
locale: Impossible de définir LC_ALL sur la locale par défaut : Aucun fichier ou dossier de ce type
(Lecture de la base de données ... 21173 fichiers et répertoires déjà installés.)
Suppression de bind9 ...
 * Arrêt du service de nom de domaine... bind9                                        [ OK ]
Traitement des déclencheurs pour man-db ...
locale: Impossible de définir LC_CTYPE sur la locale par défaut : Aucun fichier ou dossier de ce type
locale: Impossible de définir LC_MESSAGES sur la locale par défaut : Aucun fichier ou dossier de ce type
locale: Impossible de définir LC_ALL sur la locale par défaut : Aucun fichier ou dossier de ce type

Comment puis-je résoudre cette erreur ?

0 votes

0 votes

Solution facile et permanente pour tous les utilisateurs : askubuntu.com/questions/881742/…

566voto

Avi Points 1833

Exécutez d'abord locale pour répertorier quelles locales sont actuellement définies pour le compte utilisateur actuel :

$ locale
LANG=C
LANGUAGE=
LC_CTYPE=fi_FI.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE=fi_FI.UTF-8
LC_MONETARY="C"
LC_MESSAGES=fi_FI.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

Ensuite, générez la locale manquante et reconfigurez les locales pour en tenir compte :

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Génération complète.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... à jour
Génération complète.

Maintenant, vous ne verrez plus d'erreurs !

250 votes

N'a pas fonctionné pour moi

4 votes

Cela a fonctionné pour moi sur plusieurs systèmes. Y a-t-il un moyen d'éviter ce problème sur les systèmes nouvellement installés?

13 votes

@UmairAyub peut-être que vous avez plus d'un locale non identifié, essayez ceci: pour y in $(locale | cut -d '=' -f 2| sort |uniq );do locale-gen $y; done Cela générera un locale pour chaque définition que vous avez

407voto

Marcin Points 4079

Rien de ce qui a été suggéré ci-dessus n'a fonctionné dans mon cas (Ubuntu Server 12.04LTS). Ce qui a finalement aidé était de mettre dans le fichier /etc/environment:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Pour une raison quelconque, cela manquait. Les sorties pour la localisation et d'autres commandes semblaient indiquer que les variables étaient correctement définies. Autrement dit, ne considérez pas comme acquis que toutes les choses de base sont déclarées là où elles devraient l'être.

128 votes

Oui, aucun autre n'a fonctionné sauf celui-ci, peut-être en raison de la version mise à jour. Mais je préfère plutôt mettre ceci dans /etc/default/locale.

29 votes

Mise à jour de /etc/default/locale et plus de avertissements. Merci

8 votes

Oui, les autres n'ont pas fonctionné pour moi. Celui-ci l'a fait. Voici la ligne de commande que j'ai utilisée pour mettre à jour cette configuration de manière non assistée. sudo sh -c "echo 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"

168voto

Rinzwind Points 270388

Ils devraient disparaître après l'émission:

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales 

dpkg-reconfigure reconfigure les packages après qu'ils aient déjà été installés. Passez-lui les noms d'un package ou de packages à reconfigurer. Il posera des questions de configuration, tout comme lors de l'installation initiale du package.

10 votes

Je suis content que mes ennuis il y a un an vous aient aidé à résoudre ce problème ;)

1 votes

Ne devrait pas ce locale être généré par défaut? Je veux dire en, en_AU, en_CA, en_GB sont présents par défaut mais pas en_US?

0 votes

@Rinzwind Merci beaucoup pour tes efforts! Je m'excuse; j'aurais dû formuler ma question de manière plus précise. Ce que je voulais demander, c'est: Pourquoi est-il nécessaire de reconfigurer le package locales après avoir généré de nouvelles locales? Il me semble que les locales fonctionnent même sans dpkg-reconfigure.

134voto

ratz Points 1349

Il suffit d'ajouter ce qui suit à votre fichier .bashrc (en supposant que vous utilisez bash)

export LC_ALL="en_US.UTF-8"

3 votes

Ce correctif doux a fonctionné pour moi sur mon image Amazon-EC2 (J'utilisais leur AMI RHEL par défaut) Merci beaucoup! :)

0 votes

Celle-ci a fonctionné pour moi avec mon image Ubuntu 12.04 de DigitalOcean.

2 votes

Cela a résolu mon problème. Je dois poser une question : comment se fait-il que LC_ALL n'ait pas été défini par la commande locale-gen comme l'ont dit les autres réponses ci-dessus ?

107voto

user249697 Points 1179

C'est un problème courant lorsque vous vous connectez à distance, donc la solution est de ne pas transférer votre paramètre régional. Modifiez le fichier /etc/ssh/ssh_config et mettez en commentaire la ligne SendEnv LANG LC_*.

6 votes

Je cherchais d'autres réponses, mais j'ai oublié que je me connectais à distance jusqu'à ce que je voie votre réponse. Des paramètres régionaux différents sur le serveur ssh et le client causaient le problème.

2 votes

Sur OSX (connexion à ubuntu), cela se trouve à /etc/ssh_config

0 votes

Une ligne pour faire cela : sed -e '/SendEnv/ s/^#*/#/' -i /etc/ssh/ssh_config (utile pour le provisionnement du serveur)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X