Perl: warning: Setting locale failed : serveurs OVH

Tags: #<Tag:0x00007f63f2e93790>

Bonjour,

Je suis un peu énervé de résoudre encore ce problème sur 2 servers OVH debian 10 et 11, je comprends pas OVH qui a des template debian avec des warnings

J’avais résolue ce problème ya lontemps, me dites pas que ce problème a deja été traité, y’a pas de solutions simples, mais j’espère la trouver pour future instal :slight_smile:

Je veux mettre en anglais “en_US.UTF-8”
M’en fout du fr

Donc j’ai tout le temps des warnings style :

$ sudo -u postgres psql

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
psql (13.5 (Debian 13.5-0+deb11u1))
Type "help" for help.

Quand je fais : $ 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.UTF-8
LANGUAGE=
LC_CTYPE=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=

Quand je fais :

sudo dpkg-reconfigure locales

Et je choisi en_US.UTF-8 :

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
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
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
locales-all installed, skipping locales generation
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "C"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "C"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

J’ai même reformat un server pour ca pour être sur c’était un problème par défaut,

Je connais pas suffisament linux pour tout triturer, je cherche une solution simple sinon je reformat

Sur stackoverflow ya tout et n’importe quoi, c’en est drole, une thread qui date de 10 ans (!)

Et si je reprends ou reformat un server, j’aimerais bien trouver une explication/methode simple pour mettre en “en_US.UTF-8”, sans warning

Merci de votre aide

j’ai oublié le fichier environnement :
lu ici :

dans le fichier /etc/environment, vous mettez le code qui correspond à votre langue par défaut uniquement pour les deux variables LANG et LANGUAGE
Par exemple pour le français:
LANG=french
LANGUAGE=fr

mais en fait j’ai demandé a un pote, non debian, son fichier « /etc/environment » est vide, il a pas de warning.
sur debian par defaut ce fichier est vide, est-ce bien utile de le remplir ?

en plus je crois que c’est faux, si on mets english, eng a change rien. il faut mettre
LANG= en_US.UTF-8

?

je me réponds a moi même, cette methode ne marche pas :
https://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian

en 2 mots :

locale-gen en_US.UTF-8

Alternatively a locale file can be created manually with localedef :[1]

localedef -i en_US -f UTF-8 en_US.UTF-8

Setting Locale Settings

The locale settings can be set (to en_US.UTF-8 in the example) as follows:

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
dpkg-reconfigure locales

en fait ce problème il date de 10 ans, comme sur stackoverflow, la thread
est encore active
en fait je travaille sur la gestion d’information, et cet exemple est symptomatique d’un problème de gestion de l’infos. on passe plus de temps a analyser toutes les réponses, que de résoudre le problème, et c’est un problème. (et on voudrais le résoudre :slight_smile: )

image

Bonjour et bienvenue sur le forum,

Si je comprends bien, il s’agit d’un serveur dédié.
Si les templates d’OVH te posent problème (ce qui est mon cas de mon fournisseur à chaque installation), tu peux toujours ne pas les utiliser, enfin, presque.
Ce que je fais à chaque installation de nouveau dédié, c’est que j’installe la Debian par défaut sur la machine (parce que je ne peux pas la démarrer si je n’ai pas installé un template), et ensuite, je redémarre la machine en recovery pour installer le système comme je le veux.

Après, si la localisation te pose problème et ne t’apporte rien de plus, tu peux mettre la langue C à la place de l’anglais, ça ne pose pas de problème de mettre C, il me semble.

Bonjour,

Je suppose que tu te connectes en SSH à tes serveurs. Il faut donc commencer par vérifier la valeur de la directive AcceptEnv côté serveur et SendEnv côté client.
Par défaut ces valeurs sont définies pour que les variables d’environnement LC_* du client soient transmises au serveur.
Il y a plein de façon de faire pour obtenir ce que tu veux en jouant sur ce directives.

P.S. : je ne vois pas le rapport avec OVH.

ya quelqu"un qui a dit ca, sur ce forum, mais ca semble faux
c’est ca qu’il faut mettre :

% cat /etc/environment 
LANGUAGE="fr_FR:fr:en_GB:en"
LANG=fr_FR@euro

j’ai pas trouvé la réponse encore, mais je debug le forum lol

source :
https://lists.debian.org/debian-glibc/2004/12/msg00168.html

oui oui server dédié ovh accès ssh

quel rapport entre ssh et le fait qu’il n’y ai aucune valeur par défaut dans l’instal ovh

dpkg-reconfigure locales

ce que tu veux dire en clair c’est ca :

This happens when you SSH from your Mac laptop to a Linux server (including a virtual Linux server running on your laptop). SSH forwards the LANG and LC_* environment variables from the local shell to the remote shell, and some of the values used on the Mac are not valid on the Linux server.

The problem can be fixed in various ways, including installing the missing locales on the server. I recommend simply disabling the SSH environment forwarding, either on the server (remove AcceptEnv in /etc/ssh/sshd_config ), or on the laptop (remove SendEnv in /etc/ssh/ssh_config ), or both.

problème résolu en 2 sec :

suffit ce commenter la dernière ligne de

sudo nano /etc/ssh/ssh_config

Host *
# SendEnv LANG LC_*

et plus de problème. tout ca pour ca lol !
je résume pour moi meme future instal :

run

dpkg-reconfigure locales

comment last line on ssh client
sudo nano /etc/ssh/ssh_config

SendEnv LANG LC_*

c’est tout !!
et le fichier /etc/environment du server reste vide !

omg tout ca pour ca

source :