Question Comment réparer mon problème de paramètres régionaux?


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

perl: warning: Setting locale failed.   
perl: warning: Please check that your locale settings:   
        LANGUAGE = "en_US:en",   
        LC_ALL = (unset),   
        LC_MESSAGES = "en_US.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_MESSAGES to default locale: No such file or directory   
locale: Cannot set LC_ALL to default locale: No such file or directory   
(Reading database ... 21173 files and directories currently installed.)  
Removing bind9 ...  
 * Stopping domain name service... bind9                                        [ OK ]
Processing triggers for man-db ...   
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   

Comment réparer cette erreur?


462
2017-07-11 14:08


origine


En relation: Comment définir les paramètres régionaux? - Lucio
duplicata possible de Les variables de paramètres régionaux n'ont aucun effet dans le shell distant (perl: avertissement: les paramètres régionaux ont échoué.) - Denilson Sá Maia
Solution facile et permanente pour tous les utilisateurs: askubuntu.com/questions/881742/… - Galvani


Réponses:


Première exécution locale pour répertorier les paramètres régionaux définis pour le compte d'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 les paramètres régionaux manquants et reconfigurez les paramètres régionaux pour prendre en compte:

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

Maintenant, vous ne verrez plus aucune erreur!


471
2017-12-10 12:45



N'a pas travaillé pour moi - Umair
Cela a fonctionné pour moi sur un certain nombre de systèmes. Est-il possible d'éviter ce problème sur les systèmes nouvellement installés? - Brylie Christopher Oxley
@UmairAyub est peut-être que vous avez plusieurs paramètres régionaux inconnus, essayez ceci: for y dans $ (locale | cut -d '=' -f 2 | sort | uniq); faire locale-gen $ y; terminé Il générera une locale pour chaque définition que vous avez - Ivan Buttinoni
La locale dans le locale-gen La commande doit être entre guillemets pour que cela fonctionne correctement: $ sudo locale-gen "en_US.UTF-8" - Sheharyar
@Umair Il y a un risque élevé d'erreur humaine dans ce problème. Votre système est configuré pour en_GB par défaut, mais vous le définissez sur en_US. Vous devez commenter manuellement en_GB et décommenter en_US dans /etc/locale.gen. Voir ma réponse askubuntu.com/a/790373/25388 dans le matériel Raspberry Pi 3b et le système Raspbian Jessie. - Léo Léopold Hertz 준영


Rien de suggéré ci-dessus n'a fonctionné dans mon cas (Ubuntu Server 12.04LTS). Ce qui a finalement aidé mettait au dossier /etc/environment:

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

Pour une raison quelconque, il manquait. Les sorties pour les paramètres régionaux et les autres commandes sont apparues comme si les variables étaient correctement définies. En d'autres termes, ne tenez pas pour acquis tous les éléments de base sont déclarés où ils doivent être déclarés.


339
2017-12-16 04:11



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 cela dans /etc/default/locale. - Naveed
Actualisé /etc/default/locale et plus d'avertissements. Merci - ohho
Oui, les autres n'ont pas fonctionné pour moi. Celui-ci l'a fait. Voici le one-liner que j'ai utilisé pour cette mise à jour sans surveillance. sudo sh -c "echo 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment" - dman
@ user163207 votre solution est incorrecte car elle s’ajoute (au lieu de remplacer), ce n’est pas le fichier recommandé, et echo doit être exécuté avec l'interprétation des échappements antislash activés. C'est le même que le vôtre, mais avec le correctif susmentionné: sh -c "echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale" - glarrain
N'OUBLIEZ PAS DE DÉMARRER ET DE RÉINSCRIRE! - S.M.Mousavi


Ils devraient disparaître après la délivrance:

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

dpkg-reconfigure reconfigure les paquets après qu'ils ont déjà été        installée. Transmettez-lui les noms d'un package ou de packages à reconfigurer.        Il posera des questions de configuration, un peu comme lorsque le paquet était        d'abord installé.


139
2017-07-11 14:19



Je suis content que mes problèmes d'il y a un an vous aient aidé à résoudre ce problème;) - Rinzwind
Cette locale ne devrait-elle pas être générée par défaut? je veux dire en, en_AU, en_CA, en_GB sont présents par défaut mais pas en_US? - Daniel Serodio
@Rinzwind Merci beaucoup pour vos efforts! Je m'excuse; J'aurais dû formuler ma question mieux. Ce que je voulais dire, c'est: pourquoi est-il nécessaire de reconfigurer le paquetage local après avoir généré de nouveaux paramètres régionaux? Il me semble que les lieux fonctionnent même sans dpkg-reconfigure. - Victor
En utilisant Ubuntu 14.04, dans un conteneur Docker, rien n’était défini. Django's makemessage a besoin de ça Cela a parfaitement fonctionné! Merci. - Justin
Je crois le sudo est manquant. Peut-être devrait-il être: sudo dpkg-reconfigure locales. Cela a fonctionné pour moi après une nouvelle installation d'Ubunty 14.10 Desktop 64 bits. - bgoodr


Ajoutez simplement ce qui suit à votre .bashrc Fichier (en supposant que vous utilisez bash)

export LC_ALL="en_US.UTF-8"

108
2017-11-08 09:42



Cette douce correction a fonctionné pour moi sur mon image Amazon-EC2 (exécutait leur défaut RHEL AMI) Merci beaucoup! :) - gideon
Celui-ci a fonctionné pour moi avec l'image Ubuntu 12.04 de mon digitalocean. - Inan Berbatov
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 d'autres réponses l'ont dit plus haut? - alexserver
Bizarre, toute solution ci-dessus ne fonctionnait pas pour moi mais celle-ci l'a fait! Après l'exportation LC_ALL Je pourrais enfin utiliser sudo dpkg-reconfigure locales. - sobi3ch
Finalement, après avoir essayé beaucoup de trucs, c’est le travail pour moi sur kubuntu 14.04.3. Merci! - Jonas


C'est un problème courant si vous vous connectez à distance. La solution consiste donc à ne pas transférer vos paramètres régionaux. modifier /etc/ssh/ssh_config et commenter SendEnv LANG LC_* ligne.


88
2017-10-01 00:45



J'essayais d'autres réponses, mais j'ai oublié que je me connectais à distance jusqu'à ce que je voie votre réponse. Différents paramètres régionaux sur le serveur ssh et le client étaient à l'origine du problème. - Hieu
Sur OSX (connexion à Ubuntu) c'est à /etc/ssh_config - Michiel de Mare
One-liner pour faire ceci: sed -e '/SendEnv/ s/^#*/#/' -i /etc/ssh/ssh_config (utile pour l'approvisionnement du serveur) - Albin
Je n'ai pas pu définir LC_ALL sur la machine locale, mais j'ai corrigé mon problème avec le serveur distant, merci. - Alexander Shlenchack
Cela vaut probablement la peine de noter que vous devez éditer le fichier sur la machine locale et non sur la télécommande. - Clashsoft


Il y a une commande pour cela:

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Il met à jour /etc/default/locale avec les valeurs fournies.


63
2017-08-01 11:51



Cela est légitime! N'oubliez pas de déconnecter / recharger votre shell, sinon vous ne verrez pas les modifications. N'oubliez pas de vérifier la réponse approuvée pour générer et reconfigurer les paramètres régionaux. - Erik Zivkovic
Fonctionnement locale ne montre toujours aucune valeur utf. - Cerin
@Cerin: Myybe, un appel à locale-gen est manquant. Avant, il faut faire apt-get install locales. - koppor
Cela ne changera pas LANG pour le shell racine sur Ubuntu 16.04, car il est remplacé par /root/.profile. - Willem


Ce qui a fonctionné pour moi le 12.10 était ceci:

apt-get install language-pack-en-base  

C'était après dpkg-reconfigure locales produit aucun résultat.


30
2018-04-28 02:01



C'est la meilleure réponse. Ce n'est pas que mes paramètres régionaux ont été mal configurés, mais ils n'existaient pas réellement. Je pense que cela est similaire au problème de l'OP ("Aucun fichier ou répertoire" n'est assez clair si votre environnement local est redresser!). - Breakthrough
Je recevais le problème des OP à chaque fois que j'utilisais apt-get sur Ubuntu 12.04 Cela le résolvait parfaitement sans avoir à éditer de fichiers. - Deepend
"language-pack-en-base est déjà la version la plus récente." - karlingen
Déconnexion et connexion peuvent aider - S.M.Mousavi
Travaillé pour moi dans un ubuntu chroot sous debian. Merci :) - Wyatt8740