web-dev-qa-db-fra.com

Problème de impossible de définir les paramètres régionaux; assurez-vous que $ LC_ * et $ LANG sont corrects!

Lorsque j'essaie toujours d'installer un nouveau package, je reçois ce message:

Can't set locale; make sure $LC_* and $LANG are correct!
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Mon système d'exploitation est Debian Jessie 8.3 (Mate) en utilisant l'anglais avec un clavier français. Quand je tape locale, j'obtiens ceci:

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
LANG=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
52
Ismail Sensei

Debian livre les locales sous forme source. Ils doivent être compilés explicitement. La raison en est que les locales compilées utilisent beaucoup plus d'espace disque, mais la plupart des gens n'en utilisent que quelques-unes.

Courir dpkg-reconfigure locales en tant que root, sélectionnez les paramètres régionaux souhaités dans la liste (avec vos paramètres, vous avez besoin de en_GB et en_US.UTF-8 - Je recommande de sélectionner en_US et en_GB.UTF-8 également), puis appuyez sur <OK>.

Vous pouvez également modifier /etc/locale.gen, décommentez les lignes des paramètres régionaux souhaités et exécutez locale-gen en tant que root.

(Remarque: sur Ubuntu, cela fonctionne différemment: exécutez locale-gen avec les paramètres régionaux que vous souhaitez générer comme arguments, par exemple Sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

Alternativement, Debian a maintenant un paquet locales-all que vous pouvez installer au lieu de locales. Il a tous les paramètres régionaux pré-générés. L'inconvénient est qu'ils utilisent plus d'espace disque (112 Mo contre 16 Mo).

La solution la mieux notée n'a pas aidé dans mon cas, j'ai donc utilisé celle-ci:

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

Après cela, je me suis déconnecté et connecté et une erreur était manquante.

21
ssasa

Ces commandes m'ont sauvé la vie

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
8
Taras Vaskiv

Si vous rencontrez ce problème sur un Raspberry Pi (ou autre?) Et que vous obtenez l'erreur lorsque vous vous connectez au pi, il existe 2 autres solutions

L'un est éditer /etc/ssh/sshd_config sur le pi et commentez la ligne

AcceptEnv LANG LC_*

par exemple Sudo nano /etc/ssh/sshd_config

Après quoi, vous devez redémarrer le serveur ssh

Sudo systemctl restart ssh

L'autre est sur votre machine client (pas le pi) éditez /etc/ssh/ssh_config (chemin différent de celui ci-dessus) et commentez la ligne

SendEnv LANG LC_*
6
gman

Vous devez installer le package locales (ou locales-all ou les paramètres régionaux en_GB, selon la version de Debian que vous avez).

Une solution de contournement pour ne pas avoir de telles erreurs: définissez LANG=C pour rooter, afin qu'il utilise no locales.

2
Giacomo Catenazzi