Ho installato un nuovo server Ubuntu 16.04, ma quando provo a modificare in modo permanente le impostazioni locali, fallisce e ritorna alla locale POSIX.
La digitazione locale
produce quanto segue:
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=
Per quanto ne so, ciò significa che non è stata impostata alcuna locale, poiché la documentazione afferma che POSIX è il " fallback, codifica ASCII, uguale a C ".
Per garantire le impostazioni locali de_AT.utf8
ed en_US.utf8
erano presenti sul mio sistema, ho eseguito locale -a
, che ha prodotto:
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
Si prega di notare le incoerenze con C.UTF-8
, ma de_AT.utf8
! Ciò che mi preoccupa ulteriormente è che POSIX è la terza voce, mentre su un sistema diverso e funzionante è l'ultimo dell'elenco.
Per cambiare la mia lingua in en_US.utf8
, ho digitato sudo update-locale LANG=en_US.utf8
. Il locale
comando mostrava ancora la locale POSIX. Dopo una disconnessione e un nuovo accesso, locale
mostravano ancora le impostazioni internazionali POSIX. Dopo un riavvio, locale
mostrava ancora la locale POSIX.
Tuttavia, quando scrivo export LANG=en_US.utf8
, funziona temporaneamente, ma solo fino al logout. In quanto tale, sono abbastanza certo che i locali siano stati generati correttamente.
Non ho più idee. Ho provato a rigenerare tutti i locali, ma sembra che /etc/default/locale
venga semplicemente ignorato.
Per motivi di completamento, /etc/default/locale
contiene solo la rigaLANG=en_US.utf8
AGGIORNAMENTO: // Ho provato a correre sudo localectl set-locale LANG=en_US.UTF-8
e localectl
mi ha anche mostrato che ha impostato le impostazioni locali, ma anche dopo un riavvio, locale
mostra ancora che i caratteri POSIX e non ASCII non vengono ancora visualizzati correttamente.
systemd
modo localectl set-locale LANG=C.UTF-8
:?
/etc/pam.d
, dovrebbe funzionare. Ma come hack per ora potresti voler creare /etc/profile.d/mylocalesetting.sh
e aggiungere la linea export LANG=en_US.UTF-8
.
/etc/default/locale
viene letto da PAM. Forse hai disabilitato PAM?