J'ai installé un nouveau serveur Ubuntu 16.04, mais lorsque j'essaie de modifier définitivement les paramètres régionaux, il échoue et revient aux paramètres régionaux POSIX.
La frappe locale
donne les résultats suivants:
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
À ma connaissance, cela signifie qu'aucun paramètre régional n'a été défini, car la documentation indique que POSIX est le " codage de secours ASCII, identique à C ".
Pour garantir les paramètres régionaux de_AT.utf8
et en_US.utf8
être présents sur mon système, j'ai couru locale -a
, ce qui a donné:
C
C.UTF-8
POSIX
de_AT.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
Veuillez noter les incohérences avec C.UTF-8
, mais de_AT.utf8
! Ce qui m'inquiète davantage, c'est que POSIX est la troisième entrée, alors que sur un système différent et fonctionnel, c'est la dernière de la liste.
Afin de changer ma langue en_US.utf8
, j'ai tapé sudo update-locale LANG=en_US.utf8
. La locale
commande montrait toujours les paramètres régionaux POSIX. Après une déconnexion et une nouvelle connexion, locale
toujours affiché les paramètres régionaux POSIX. Après un redémarrage, locale
toujours affiché les paramètres régionaux POSIX.
Cependant, lorsque je tape export LANG=en_US.utf8
, cela fonctionne temporairement, mais uniquement jusqu'à la déconnexion. En tant que tel, je suis pratiquement certain que les paramètres régionaux ont été générés correctement.
Je n'ai plus d'idées. J'ai essayé de régénérer tous les paramètres régionaux, mais il semble que ce /etc/default/locale
soit simplement ignoré.
Par souci d’achèvement, /etc/default/locale
ne contient que la ligneLANG=en_US.utf8
MISE À JOUR: // J'ai essayé de courir sudo localectl set-locale LANG=en_US.UTF-8
et localectl
m'a également montré qu'il définissait les paramètres régionaux, mais même après un redémarrage, les caractères locale
POSIX et non ASCII ne sont toujours pas rendus correctement.
/etc/default/locale
est lu par PAM. Avez-vous éventuellement désactivé PAM?systemd
façonlocalectl set-locale LANG=C.UTF-8
:?/etc/pam.d
, cela devrait fonctionner. Mais pour le moment, vous voudrez peut-être créer/etc/profile.d/mylocalesetting.sh
et ajouter la ligneexport LANG=en_US.UTF-8
.Réponses:
Ce que j'ai finalement fait, c'est une combinaison des techniques ci-dessus
J'ai d'abord fait
et choisi l'anglais, utf8, puis:
Également édité / etc / default / locale pour ressembler à:
Et après le redémarrage, lorsque je tape locale, cela ressemble maintenant à ceci:
Et plus d'avertissements ...
la source
La réponse était en effet liée au PAM, comme Gunnar Hjalmarsson l'a mentionné dans un commentaire. PAM a été désactivé via
sshd_config
, même si je ne me souviens vraiment pas l'avoir fait moi-même.Pour résumer: Si
/etc/default/locale
semble ignoré, vérifiez si PAM est activé.la source
Exécutez les commandes suivantes:
la source
locale
affiche toujours POSIX pour toutEn déployant de nouvelles machines virtuelles 16.04.5, j'ai rencontré ce problème exact, mais avec
xrdp
au lieu de SSH. J'ai résolu ce problème en ajoutant ce qui suit à/etc/pam.d/common-session
:Si vous êtes sensible aux langues et cultures supplémentaires à travers les méthodes de connexion, vous pouvez le mettre à la place
/etc/pam.d/xrdp-sesman
(ou dans un autre fichier de configuration PAM). C'est peut-être pourquoi il n'est pas là par défaut? C'est dans les configurations PAM suivantes par défaut sur nos nouvelles installations de VM:cron, lightdm *, login, polkit-1, sshd, su et sudo.
J'espère que cela aide quelqu'un avec ce problème compte tenu des méthodes de connexion autres que SSH.
Quelqu'un connaît-il les meilleures pratiques pour la configuration / modification PAM de common- *? S'il y a une meilleure façon de faire avancer les choses, il serait bon de les descendre.
la source