ฉันได้ติดตั้งเซิร์ฟเวอร์ Ubuntu 16.04 ใหม่แล้ว แต่เมื่อฉันพยายามเปลี่ยนการตั้งค่าภาษาอย่างถาวรมันจะล้มเหลวและเปลี่ยนกลับไปเป็นภาษา POSIX
การพิมพ์localeให้ผลดังนี้:
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=
ตามความรู้ของฉันนี่หมายความว่าไม่มีการตั้งค่าภาษาใด ๆ เลยเนื่องจากสถานะเอกสาร POSIX คือ " การย้อนกลับการเข้ารหัส ASCII เหมือนกับ C "
เพื่อให้มั่นใจว่าสถานที่de_AT.utf8และen_US.utf8มีอยู่ในระบบของฉันฉันวิ่งไปหาlocale -aที่ให้:
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
โปรดทราบความไม่สอดคล้องด้วยC.UTF-8แต่de_AT.utf8! สิ่งที่ฉันกังวลอีกต่อไปคือ POSIX เป็นรายการที่สามในขณะที่ระบบการทำงานที่แตกต่างออกไปนั้นเป็นรายการสุดท้าย
เพื่อที่จะเปลี่ยนภาษาของฉันไปที่ผมพิมพ์en_US.utf8 คำสั่งยังคงมีสถานที่ POSIX หลังจากออกจากระบบและเข้าสู่ระบบใหม่ยังคงแสดงให้เห็นถึงสถานที่เกิดเหตุ POSIX หลังจากรีบูตยังคงแสดงให้เห็นถึงสถานที่เกิดเหตุ POSIXsudo update-locale LANG=en_US.utf8localelocalelocale
อย่างไรก็ตามเมื่อฉันพิมพ์export LANG=en_US.utf8มันจะทำงานได้ชั่วคราว แต่เพียงจนกว่าจะออกจากระบบ ดังนั้นฉันค่อนข้างมั่นใจว่าสถานที่นั้นถูกสร้างขึ้นอย่างถูกต้อง
ฉันไม่มีความคิด ฉันลองสร้างที่ตั้งใหม่ทั้งหมด แต่ดูเหมือนว่า/etc/default/localeจะถูกเพิกเฉย
เพื่อประโยชน์ในการสำเร็จ/etc/default/localeมีเพียงบรรทัดLANG=en_US.utf8
UPDATE: //ฉันพยายามเรียกใช้sudo localectl set-locale LANG=en_US.UTF-8และlocalectlยังแสดงให้ฉันเห็นว่ามันตั้งค่าภาษาไว้ แต่แม้หลังจากรีบูตเครื่องlocaleก็ยังคงแสดงว่า POSIX และตัวอักษรที่ไม่ใช่ ASCII ยังแสดงผลไม่ถูกต้อง
systemdวิธีที่: localectl set-locale LANG=C.UTF-8?
/etc/pam.dควรดำเนินการ แต่เป็นสับสำหรับในตอนนี้คุณอาจต้องการที่จะสร้างและเพิ่มบรรทัด/etc/profile.d/mylocalesetting.sh export LANG=en_US.UTF-8
/etc/default/localeถูกอ่านโดย PAM คุณอาจปิดใช้งาน PAM หรือไม่