web-dev-qa-db-fra.com

la VM est en cours d’exécution avec l’encodage du nom national du latin1, c’est-à-dire un dysfonctionnement d’Elixir

Comment résoudre cet avertissement étant invité à chaque fois que j'exécute le code Elixir ou que je saisis iex?

avertissement: la VM est en cours d’exécution avec le codage de nom natif latin1, ce qui peut entraîner un dysfonctionnement d’Elixir car il s’attend à utf8. Assurez-vous que vos paramètres régionaux sont définis sur UTF-8 (ce qui peut être vérifié en exécutant "paramètres régionaux" dans votre shell).

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

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:        14.04
Codename:       trusty
17
Rustam A. Gasanov

Apparemment non réglé LC_ALL= était le problème, j'ai vérifié

$ cat /etc/default/locale
LANG="en_US.utf8"
LANGUAGE="en_US:"

en vérifiant que LC_ALL est manquant, pour y remédier, j'ai exécuté:

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

cette commande a ajouté LC_ALL au fichier /etc/default/locale:

$ cat /etc/default/locale
LANG="en_US.utf8"
LANGUAGE="en_US:"
LC_ALL=en_US.UTF-8

et l'erreur est parti.

13
Rustam A. Gasanov

J'utilise erlang dans un conteneur Docker et les autres solutions ne l'ont pas coupé. La commande update-locale peut ne pas être disponible dans un conteneur docker ubuntu. J'ai donc volé du code qui l'installe à partir de https://hub.docker.com/r/voidlock/erlang/~/dockerfile/ .

apt-get update && apt-get install -y --no-install-recommends locales
export LANG=en_US.UTF-8 \
    && echo $LANG UTF-8 > /etc/locale.gen \
    && locale-gen \
    && update-locale LANG=$LANG
6
nicooga

Cela se produit lorsque vous effectuez une connexion SSH depuis votre ordinateur portable Mac vers un serveur Linux (y compris un serveur Linux virtuel exécuté sur votre ordinateur portable). SSH transmet les variables d'environnement LANG et LC_* du shell local au shell distant, et certaines des valeurs utilisées sur le Mac ne sont pas valides sur le serveur Linux.

Le problème peut être résolu de différentes manières, notamment en installant les paramètres régionaux manquants sur le serveur. Je recommande simplement de désactiver le transfert de l'environnement SSH, soit sur le serveur (supprimez AcceptEnv dans /etc/ssh/sshd_config), soit sur l'ordinateur portable (supprimez SendEnv dans /etc/ssh/ssh_config).

En savoir plus dans Comment corriger un avertissement de paramètres régionaux de Perl?

3
Christian Schmidt

Sur centOS 7, les éléments suivants ont fonctionné pour moi:

localedef -c -f UTF-8 -i en_US en_US.UTF-8
export LC_ALL=en_US.UTF-8

Devrait fonctionner pour la plupart, sinon toutes les distributions RHEL. À votre santé!

1
radtek

Pour moi, définir les paramètres régionaux dans mon script d'initialisation /etc/init/my_start_script.conf a fait l'affaire

env LC_ALL=en_US.UTF-8 
export LC_ALL
0
Informatom