Saya telah menyiapkan server Ubuntu 16.04 baru, tetapi ketika saya mencoba mengubah pengaturan lokal secara permanen, ia gagal dan kembali ke lokal POSIX.
Mengetik localemenghasilkan sebagai berikut:
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=
Sepengetahuan saya, ini berarti bahwa tidak ada lokal telah ditetapkan sama sekali, karena dokumentasi menyatakan POSIX adalah " mundur, pengkodean ASCII, sama dengan C ".
Untuk memastikan lokasi de_AT.utf8dan en_US.utf8hadir di sistem saya, saya berlari locale -a, yang menghasilkan:
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
Harap perhatikan inkonsistensi dengan C.UTF-8, tetapi de_AT.utf8! Yang lebih mengkhawatirkan saya adalah bahwa POSIX adalah entri ketiga, sedangkan pada sistem kerja yang berbeda, ini adalah yang terakhir dari daftar.
Untuk mengubah bahasa saya ke en_US.utf8, saya mengetik sudo update-locale LANG=en_US.utf8. The localeperintah masih menunjukkan lokal POSIX. Setelah keluar dan masuk baru, localemasih menunjukkan lokal POSIX. Setelah reboot, localemasih menunjukkan lokal POSIX.
Namun, ketika saya mengetik export LANG=en_US.utf8, itu berfungsi sementara, tetapi hanya sampai keluar. Karena itu, saya cukup yakin bahwa lokal dihasilkan dengan benar.
Saya kehabisan ide. Saya mencoba meregenerasi semua lokal, tetapi sepertinya /etc/default/localehanya diabaikan.
Demi penyelesaian, /etc/default/localehanya berisi garisLANG=en_US.utf8
UPDATE: // Saya mencoba menjalankan sudo localectl set-locale LANG=en_US.UTF-8, dan localectljuga menunjukkan kepada saya bahwa itu mengatur lokal, tetapi bahkan setelah reboot, localemasih menunjukkan POSIX dan karakter non-ASCII masih belum diterjemahkan dengan benar.
systemdcara localectl set-locale LANG=C.UTF-8:?
/etc/pam.ddalamnya, itu akan berfungsi. Tetapi sebagai peretasan untuk saat ini, Anda mungkin ingin membuat /etc/profile.d/mylocalesetting.shdan menambahkan baris export LANG=en_US.UTF-8.
/etc/default/localedibaca oleh PAM. Apakah Anda mungkin menonaktifkan PAM?