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

49

Quand j'essaye toujours d'installer un nouveau paquet, 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 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=
Ismail Sensei
la source

Réponses:

62

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

Exécutez en dpkg-reconfigure localestant que root, sélectionnez les paramètres régionaux de votre choix dans la liste (avec vos paramètres, vous avez besoin en_GBet en_US.UTF-8- je vous recommande de sélectionner en_USet en_GB.UTF-8aussi), puis appuyez sur <OK>.

Sinon, éditez /etc/locale.gen, décommentez les lignes correspondant aux paramètres régionaux que vous souhaitez et exécutez-les en locale-gentant que root.

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

Sinon, Debian a maintenant un paquet locales-allque vous pouvez installer à la place locales. Il a tous les lieux pré-générés. L'inconvénient est qu'ils utilisent plus d'espace disque (112 Mo contre 16 Mo).

Gilles, arrête de faire le mal
la source
1
Cela a fonctionné, mais seulement après que je me suis déconnecté, puis reconnecté.
Forivin
Travaillé pour moi aussi!
Jamie Ivanov
la retouche /etc/locale.genn’a pas fait le travail pour moi (déconnexion / connexion), mais a locale-genrésolu mon tmux: need UTF-8 locale (LC_CTYPE)problème leDebian 4.9.82
eapo
2
Comme je @eapo état dans ma réponse, vous devez modifier /etc/locale.gen et puis exécutez locale-gen.
Gilles, arrête d'être méchant
J'ai manqué le peu d'activer en_US.UTF-8aussi bien que votre propre lieu. J'ai découvert la difficulté, puis je suis revenu ici pour faire ma propre réponse avant de me rendre compte que c'était toujours ici.
Alastair McCormack le
19

La solution la mieux notée n'a pas aidé dans mon cas, alors j'ai utilisé celui-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.

ssasa
la source
2
L'utilisation de LC_ALL est fortement déconseillée car elle annule tout. S'il vous plaît, utilisez-le uniquement lors des tests et ne le définissez jamais dans un fichier de démarrage. selon: wiki.debian.org/Locale
Pitone Maledetto le
6

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
Taras Vaskiv
la source
6

Si vous rencontrez ce problème sur un framboise pi (ou autre?) Et que vous obtenez le message d'erreur lorsque vous passez au pi, il existe 2 autres solutions

On est éditer /etc/ssh/sshd_configsur le pi et commenter 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 cliente ( pas la pi ) edit /etc/ssh/ssh_config(chemin différent de ci-dessus) et commentez la ligne

SendEnv LANG LC_*
gman
la source
Les deux ne sont pas commentés pour moi, mais le problème persiste. (RPi3, macOS10.14)
jorijnsmit,
A commenté sur la ligne maintenant. Vous n'avez pas vraiment l'occasion de tester mais cela semble plus logique de cette façon ... Merci.
Jorijnsmit
2

Vous devez installer le paquet locales(ou locales-allles 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=Csur root pour qu’il n’utilise pas de paramètres régionaux.

Giacomo Catenazzi
la source