[Perl] perl: warning: Setting locale failed
Sebastien Moretti
sebastien.moretti at unil.ch
Lun 8 Mai 09:33:30 CEST 2017
Merci pour vos réponses.
> Non. Tricher avec perl n'est pas une bonne idée.
>
> Les vraies solutions sont :
> - soit de corriger ton environnement : changer les variables
> d'environnement indiquées pour qu'elles correspondent à ce qui est
> disponible sur la machine.
> - soit ajouter des locales sur la machine
>
> Vu que tu n'a pas d'accès root, tu n'as que la première option.
>
> Regarde la sortie de /usr/bin/locale sur cette machine et compare avec
> la liste donnée par "/usr/bin/locale -a".
>
> Est que tu lances cette commande directement sur un terminal local ou
> depuis un terminal distant via SSH ?
J'ai les deux cas.
Et je ne suis pas le seul utilisateur du script.
Donc je peux difficilement demander à tous les utilisateurs de faire
cette correction.
J'espérais faire ça dans le script Perl directement.
Je vais sans doute créer un wrapper autour du script Perl afin que
celui-ci ait les bonnes locales lors de son exécution.
> Si c'est via SSH, le problème vient probablement du fait que ton client
> SSH propage sa locale au serveur distant. C'est l'option "SendEnv" (voir
> man ssh_config) qui permet cela. Sur Ubuntu c'est dans la config par
> défaut (grep SendEnv /etc/ssh/ssh_config).
> Tu peux alors :
> - soit lancer ta commande SSH avec les variables d'environnement
> corrigées. Ex : LC_ALL=C.UTF-8 ssh ton-hôte ta-commande
> - soit paramétrer tes connexions SSH à ce serveur pour qu'elles
> surchargent la config SSH par défaut avec une configuration où les
> variables d'environnement ne sont pas envoyées. Le préfixe "!" permet
> d'indiquer de NE PAS envoyer la variable indiquée. Exemple dans ton
> ~/.ssh/config :
> Host mon-hôte
> SendEnv !LANG
> Olivier.
>
>
>
> Le 5 mai 2017 à 13:25, Sebastien Moretti <sebastien.moretti at unil.ch
> <mailto:sebastien.moretti at unil.ch>> a écrit :
>
> Bonjour
>
> j'ai ce problème couramment rencontré
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
> LANGUAGE = (unset),
> LC_ALL = (unset),
> LANG = "en_US.UTF-8"
> are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
>
>
> Malheureusement c'est sur un serveur où je ne peux pas faire sudo.
>
>
> Existe-t-il un moyen de supprimer ce warning DANS le script perl
> lui-même?
>
> J'ai déjà tenté
> - no warnings 'locale'
> - #!/usr/bin/env LC_ALL=C perl
> - BEGIN { $ENV{'LC_ALL'} = 'C'; }
> sans succès.
>
>
> Merci
>
> --
> Sébastien Moretti
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net <mailto:Perl at mongueurs.net>
> http://listes.mongueurs.net/mailman/listinfo/perl
> <http://listes.mongueurs.net/mailman/listinfo/perl>
--
Sébastien Moretti
Plus d'informations sur la liste de diffusion Perl