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 localeproduce 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.utf8ed en_US.utf8erano 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 localecomando mostrava ancora la locale POSIX. Dopo una disconnessione e un nuovo accesso, localemostravano ancora le impostazioni internazionali POSIX. Dopo un riavvio, localemostrava 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/localevenga semplicemente ignorato.
Per motivi di completamento, /etc/default/localecontiene solo la rigaLANG=en_US.utf8
AGGIORNAMENTO: // Ho provato a correre sudo localectl set-locale LANG=en_US.UTF-8e localectlmi ha anche mostrato che ha impostato le impostazioni locali, ma anche dopo un riavvio, localemostra ancora che i caratteri POSIX e non ASCII non vengono ancora visualizzati correttamente.
systemdmodo localectl set-locale LANG=C.UTF-8:?
/etc/pam.d, dovrebbe funzionare. Ma come hack per ora potresti voler creare /etc/profile.d/mylocalesetting.she aggiungere la linea export LANG=en_US.UTF-8.
/etc/default/localeviene letto da PAM. Forse hai disabilitato PAM?