Question Comment réparer un avertissement de paramètres régionaux de Perl?


Quand je cours perl, J'obtiens l'avertissement:

perl: warning: La configuration des paramètres régionaux a échoué.
perl: warning: Veuillez vérifier que vos paramètres régionaux:
    LANGUAGE = (non défini),
    LC_ALL = (non défini),
    LANG = "en_US.UTF-8"
sont pris en charge et installés sur votre système.
perl: warning: Retour à l'environnement local standard ("C").

Comment je le répare?


460
2018-03-23 12:27


origine


Réponses:


Votre système d'exploitation ne sait pas en_US.UTF-8.

Vous n'avez pas mentionné une plate-forme spécifique, mais je peux reproduire votre problème:

% uname -a
OSF1 hunter2 V5.1 2650 alpha
% perl -e sortie
Perl: avertissement: les paramètres régionaux ont échoué.
perl: warning: Veuillez vérifier que vos paramètres régionaux:
    LC_ALL = (non défini),
    LANG = "en_US.UTF-8"
    sont pris en charge et installés sur votre système.
perl: warning: Revient à l'environnement local standard ("C").

Je suppose que vous avez utilisé ssh pour vous connecter à cet ancien hôte à partir d'un ordinateur de bureau plus récent. C'est commun pour /etc/ssh/sshd_config contenir

AcceptEnv LANG LC_*

ce qui permet aux clients de propager dans de nouvelles sessions les valeurs de ces variables d'environnement.

L'avertissement vous donne un indice sur la façon de le supprimer si vous n'avez pas besoin de paramètres régionaux complets:

% env LANG = C perl -e sortie
%

ou avec bash:

$ LANG = C perl -e exit
$ 

Pour une correction permanente, choisissez l'un des

  1. Sur l'ancien hôte, définissez le LANG variable d'environnement dans le fichier d'initialisation de votre shell.
  2. Modifiez votre environnement du côté client, par exemple., plutôt que ssh hunter2, utilisez la commande LANG=C ssh hunter2.
  3. Si vous avez des droits d’administrateur, arrêtez ssh d’envoyer les variables d’environnement en SendEnv LANG LC_* ligne dans le local  /etc/ssh/ssh_config fichier. (Grâce à cette réponse. Voir Bug 1285 pour OpenSSH pour plus.)

354
2018-03-24 18:50



Voici comment le résoudre sur Mac OS Lion (10.7) ou Cygwin (Windows 10):

Ajoutez les lignes suivantes à votre bashrc ou bash_profile sur la machine hôte:

# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Si vous utilisez zsh, éditez zshrc:

# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8

395
2017-09-14 09:09



Si vous créez un rootfs en utilisant debootstrap, vous devrez générer les locales. Vous pouvez le faire en exécutant:

# (optional) enable missing locales
sudo nano /etc/locale.gen

# then regenerate
sudo locale-gen

Cette astuce vient de, https://help.ubuntu.com/community/Xen


165
2018-03-15 20:28



Utilisation:

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

Ça marche pour Debian. Je ne sais pas pourquoi - mais locale-gen n'avait pas de résultats.

Important! C'est une solution temporaire. Il doit être exécuté pour chaque session.


114
2018-03-17 13:25



Cela signifie généralement que vous n'avez pas correctement configuré les paramètres régionaux sur votre machine Linux.

Sur Debian ou Ubuntu, cela signifie que vous devez faire

$ sudo locale-gen
$ sudo dpkg-reconfigure locales

Voir également homme locale-gen.


111
2018-03-23 12:33



Pour les utilisateurs de macOS et Mac OS X uniquement

Je recevais le même avertissement en utilisant Git

Pour résoudre cet avertissement Décocher la Set locale environment variable on startup option et redémarrer votre terminal. La capture d'écran ci-dessous représente mes paramètres de terminal.

enter image description here


75
2017-12-17 06:33



C'est une solution simple dans Ubuntu. Vous devez générer les paramètres régionaux à partir de zéro, en exécutant les commandes suivantes à partir de la ligne de commande:

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

Cela devrait créer les locales, puis les reconfigurer.


34
2017-12-31 17:40



J'utilise maintenant ceci:

$ cat /etc/environment
...
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Puis déconnectez-vous de la session SSH et reconnectez-vous.

Vieille réponse:

Seulement cela m'a aidé:

$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

$ sudo su

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

# locale-gen en_US.UTF-8
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

# dpkg-reconfigure locales
Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.

# exit

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8

23
2018-02-25 16:06



Ajouter ce qui suit à /etc/environment J'ai résolu le problème sur Debian et Ubuntu (bien sûr, modifiez-le pour correspondre aux paramètres régionaux que vous voulez utiliser):

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

19
2018-01-26 12:09



sur Debian après beaucoup de recherches, cela a fait l'affaire.

premier:

sudo apt-get purge locales

puis:

sudo aptitude install locales

et le célèbre:

sudo dpkg-reconfigure locales

Ceci supprime le système des locales, puis réinstalle les locales et les downgrades libc6 de 2.19 à 2.13 qui est le problème. Puis configure à nouveau les locales.


17
2017-09-18 05:34



Si tu utilises Mac OS X v10.10 (Yosemite) ou plus pour vous connecter à votre serveur Linux, vous pouvez essayer ces étapes.

  1. Gardez votre fichier / etc / ssh / sshd-config original

  2. Mettez votre ~ / .bash_profile

    export LANG="en_US"
    export LC_ALL=$LANG.UTF-8
    
  3. Courir

    dpkg-reconfigure locales
    

    Et sélectionnez "en_US.UTF-8"


11
2017-12-15 23:33