Zainstalowałem nowy serwer Ubuntu 16.04, ale kiedy próbuję trwale zmienić ustawienia regionalne, nie udaje się i powraca do ustawień narodowych POSIX.
Wpisanie locale
daje następujące wyniki:
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=
Według mojej wiedzy oznacza to, że nie ustawiono żadnych ustawień narodowych, ponieważ w dokumentacji stwierdzono, że POSIX to „ rezerwowe kodowanie ASCII, tak jak C ”.
Aby zapewnić ustawienia regionalne de_AT.utf8
i en_US.utf8
były obecne w moim systemie, uruchomiłem locale -a
, co dało:
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
Zwróć uwagę na niespójności C.UTF-8
, ale de_AT.utf8
! Martwi mnie ponadto to, że POSIX jest trzecim wpisem, podczas gdy w innym działającym systemie jest ostatnim z listy.
Aby zmienić język na en_US.utf8
, wpisałem sudo update-locale LANG=en_US.utf8
. locale
Komenda nadal pokazał POSIX locale. Po wylogowaniu i nowym logowaniu locale
nadal wyświetlał ustawienia regionalne POSIX. Po ponownym uruchomieniu locale
nadal wyświetlał ustawienia narodowe POSIX.
Jednak kiedy piszę export LANG=en_US.utf8
, działa tymczasowo, ale tylko do momentu wylogowania. Jako taki jestem pewien, że ustawienia narodowe zostały poprawnie wygenerowane.
Nie mam pomysłów. Próbowałem zregenerować wszystkie ustawienia narodowe, ale wygląda na /etc/default/locale
to, że po prostu są ignorowane.
Ze względu na zakończenie /etc/default/locale
zawiera tylko wierszLANG=en_US.utf8
AKTUALIZACJA: // Próbowałem uruchomić sudo localectl set-locale LANG=en_US.UTF-8
, a localectl
także pokazałem, że ustawił ustawienia regionalne, ale nawet po ponownym uruchomieniu locale
nadal wyświetla znaki POSIX i znaki spoza ASCII nadal nie są poprawnie renderowane.
systemd
sposobu localectl set-locale LANG=C.UTF-8
:?
/etc/pam.d
, powinien działać. Ale jako hack na razie możesz utworzyć /etc/profile.d/mylocalesetting.sh
i dodać linię export LANG=en_US.UTF-8
.
/etc/default/locale
jest czytany przez PAM. Czy prawdopodobnie wyłączyłeś PAM?