web-dev-qa-db-fra.com

Comment résoudre 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 puis-je corriger cette erreur?

500
HackToHell

Commencez par exécuter locale pour répertorier les paramètres régionaux actuellement 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=

Générez ensuite les paramètres régionaux manquants et reconfigurez les paramètres régionaux pour en tenir 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!

503
Otto Kekäläinen

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

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

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

361
Marcin

Ils devraient disparaître après avoir émis:

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

dpkg-reconfigure reconfigure les packages après qu'ils ont déjà été installés. Transmettez-lui les noms d’un ou de plusieurs paquets à reconfigurer. Il posera des questions sur la configuration, un peu comme lors de la première installation du paquet.

148
Rinzwind

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

export LC_ALL="en_US.UTF-8"
115
ratz

Il s'agit d'un problème courant si vous vous connectez à distance. La solution consiste donc à ne pas transférer vos paramètres régionaux. Éditez /etc/ssh/ssh_config et commentez la ligne SendEnv LANG LC_*.

94
user249697

Il y a une commande pour ça:

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

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

72
sgtpep

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

apt-get install language-pack-en-base  

C'était après que dpkg-reconfigure locales n'a donné aucun résultat.

32
George Answerology

N'oubliez pas de quitter votre session SSH (ou votre X11) en le quittant et en vous reconnectant. Toutes ces suggestions ne fonctionnaient pas pour moi à moins que je ne me reconnecte ....

18
Michael R. Hines

J'étais coincé dans un état étrange où ma machine locale est définie sur eset que la machine distante (via vagrantname__) avait été provisionnée dans un état non traité. Par conséquent, je devais utiliser le manuel export= uniquement pour faciliter le succès de dpkg-reconfigure. Ensuite, le système va bien.

export LC_ALL="en_US.UTF-8"
Sudo dpkg-reconfigure locales
11
Charney Kaye

Pour Ubuntu 12.10, rien de ce qui précède n’a fonctionné, à l’exception de la solution de ratzs. Je recommande de l'ajouter à votre fichier /etc/bash.bashrc:

export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
11
Lovemore Nalube

J'ai écrit un script bash pour résoudre le problème ci-dessus. Les réponses ci-dessus sont utiles, mais définir les variables de paramètres régionaux en exportant simplement les valeurs dans la variable Shell ne fonctionnera que pour une session. J'ai définitivement résolu ce problème en exportant les variables de paramètres régionaux dans le fichier .bash_profile. Vous pouvez également utiliser le fichier /etc/profile au lieu de .bash_profile.

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

N'oubliez pas de source le .bash_profile et suivez le script dans une configuration facile.

9
Ajeet Khan

Tu peux essayer:

export LANGUAGE=ru_RU.UTF-8
export LC_CTYPE=ru_RU.UTF-8
export LC_NUMERIC=ru_RU.UTF-8
export LC_TIME=ru_RU.UTF-8
export LC_COLLATE=ru_RU.UTF-8
export LC_MONETARY=ru_RU.UTF-8
export LC_MESSAGES=ru_RU.UTF-8
export LC_PAPER=ru_RU.UTF-8
export LC_NAME=ru_RU.UTF-8
export LC_ADDRESS=ru_RU.UTF-8
export LC_TELEPHONE=ru_RU.UTF-8
export LC_MEASUREMENT=ru_RU.UTF-8
export LC_IDENTIFICATION=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8

ru_RU est le code de votre pays.

8
Koss

La réponse acceptée actuelle n'est pas suffisante dans la stratégie de dépannage, car vous pouvez avoir une erreur humaine. Vous configurez votre système sur en_US mais en_GB est activé dans/etc/locale.gen comme dans le fil ici pour Raspberry Pi 3b. Vous devriez avoir tous vos paramètres régionaux utilisés activés dans /etc/locale.gen.

en_GB.UTF-8 UTF-8 n'était activé que dans /etc/locale.gen. Je n'aurais dû activer que en_US.UTF-8 UTF-8 à cause d'autres commandes exécutées pour cela. J'ai donc commenté GB et les États-Unis non commentés, et tout fonctionne maintenant

masi@raspberrypi:~ $ Sudo vim /etc/locale.gen

masi@raspberrypi:~ $ Sudo locale-gen 
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

masi@raspberrypi:~ $ Sudo a2enmod rewrite && a2enmod headers && a2enmod ssl
Module rewrite already enabled
Module headers already enabled
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

Maintenant, je ne reçois pas ces erreurs de locale avec des commandes.

Système: Jessie Raspbian
Matériel: Raspberry Pi 3b

Comme dit ici dans le wiki de Debian , vous pouvez éditer /etc/locale.gen et ajouter tous les paramètres régionaux (ou les décommenter, j'avais une liste de tous les paramètres régionaux, mais tous sauf ceux que j'ai utilisés en tant que commentaires) que vous souhaitez obtenir de l'aide. pour sur votre système. Ensuite, exécutez

Sudo dpkg-reconfigure locales

mettre à jour les paramètres régionaux sur votre système. Désormais, tous les paramètres régionaux que vous avez ajoutés/non commentés dans /etc/locale.gen sont disponibles sur votre système sans aucun avertissement.

6
msrd0

Si vous utilisez l'environnement KDE, vérifiez le fichier setlocale.sh dans ~/.kde/env/:

$ cat ~/.kde/env/setlocale.sh 
export LANG=en_US.UTF-8
export LANGUAGE=en_US:ru:en
3
MaximKostrikin
  1. Vous devrez peut-être exécuter Sudo dpkg-reconfigure également pour l'application que vous avez installée alors que les paramètres "régionaux" ne sont pas valides/ne correspondent pas.

    Alors que les paramètres régionaux du système n’étaient pas correctement configurés, j’ai installé vim. Plus tard, lorsque les paramètres régionaux du système ont été corrigés, j'ai constaté une situation dans laquelle vim affichait incorrectement les caractères utf-8 sous forme de symboles étranges alors que nano et less les affichaient correctement. Fonctionnement

    Sudo dpkg-reconfigure vim
    

    semblait résoudre le problème après la correction des paramètres système.

  2. J'ai également remarqué la même chose que ce qui a déjà été mentionné: vous devrez peut-être déconnecter/reconnecter SSH pour rendre les modifications visibles.

2
ajaaskel

Ajouter le texte suivant à ~/.profile fonctionne pour moi:

export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

J'utilise un serveur Ubuntu 16.04 LTS 64 bits sur Linode.

2
Jingguo Yao

Cela a fonctionné pour moi quand j'ai eu le même problème (basé sur la solution fournie par dman ):

Sudo sh -c "echo -e 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
2
pythonhunter