วิธีการแก้ไขข้อผิดพลาดของสถานที่


11

debootstrapฉันก็ไม่สดติดตั้งอูบุนตูใช้ เมื่อฉันsudo aptitude upgradeฉันได้รับข้อความแสดงข้อผิดพลาดนี้:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LANG = "en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

มีคนช่วยบอกวิธีแก้ปัญหานี้ได้ไหม ฉันเห็นโพสต์มากมายคล้ายกับออนไลน์ แต่ดูเหมือนว่าไม่มีใครแก้ปัญหาได้

Ubuntu 14.04 LTSฉันใช้ ขอบคุณ


FYI:

$ locale -a
C
C.UTF-8
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.iso88591
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

และ

$ locale
LANG=en_US.ISO-8859-1
LANGUAGE=en_US:en
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=

1
นี่คือคำตอบที่นี่แล้วaskubuntu.com/questions/162391/how-do-i-fix-my-locale-issueสรุป: กำหนด LC_ALL ใน / etc / default / locale
h7r

คำตอบ:


6

debootstrapไม่สร้างสถานที่เกิดเหตุ ดังนั้นเราจึงใช้อย่างอื่นเป็นสถานที่ ใช้คำสั่งนี้:

sudo locale-gen en_US.ISO-8859-1

ฉันหวังว่านี่จะช่วยได้!


Nope, aptitudeถูกต้องมากเกินไป คำตอบของคุณจะไม่เปลี่ยนแปลง OP ใด ๆ
Danatela

2
ในขณะที่อาจแก้ไขข้อผิดพลาดของสถานที่เกิดเหตุมันให้ระบบที่มีการเข้ารหัส latin1 ซึ่งไม่เหมาะกับ Ubuntu
Gunnar Hjalmarsson

นอกจากนี้ใน~/.kde.env/setlocale.shคุณตั้งexport LANG=en_US.UTF-8
user1527227

11

เดสก์ท็อป Ubuntu ควรตั้งค่าด้วยการเข้ารหัส UTF-8 ด้วยเหตุผลบางอย่างระบบของคุณพยายามตั้งค่า latin1 locale en_US.ISO-8859-1 คุณควรเปลี่ยนสิ่งนั้นจริงๆ

/etc/default/localeบางทีการตั้งค่าที่เกิดขึ้นใน

เมื่อมันเกิดขึ้นให้เปลี่ยนเป็น

LANG=en_US.UTF-8

มิฉะนั้นคุณจะต้องประหลาดใจที่เกี่ยวข้องกับสถานที่ต่างๆ


คุณแน่ใจหรือว่าเป็นสิ่งที่ใช้ คุณรู้ได้อย่างไร?
user1527227

@ user1527227: เกือบแล้ว ;) เนื่องจาก AFAIK en_US.UTF-8สร้างขึ้นล่วงหน้าบนเดสก์ท็อป Ubuntu ทุกเครื่อง แต่คุณสามารถตรวจสอบได้ง่าย ๆ ด้วยการรันlocale -aคำสั่ง มันจะดีถ้าคุณแก้ไขคำถามและเพิ่มผลลัพธ์ของคำสั่งนั้น
Gunnar Hjalmarsson

ฉันเพิ่มข้อมูลที่คุณร้องขอ
user1527227

1
@ user1527227: ตกลงและเราสามารถเห็นได้en_US.utf8ในlocale -aผลลัพธ์ คำแนะนำในการเปลี่ยนจากen_US.ISO-8859-1เป็นen_US.UTF-8ย่อ
Gunnar Hjalmarsson

ขอขอบคุณ. คุณรู้วิธีการทำเช่นนั้น? /etc/default/localeฉันไม่เห็น ฉันวิ่งได้sudo locale-gen en_US.utf8ไหม
user1527227

8

การแก้ปัญหาอย่างถาวรของปัญหาสถานที่คือการส่งออกตัวแปรสถานที่ใน.bash_profileไฟล์ นอกจากนี้คุณยังสามารถใช้ไฟล์แทน/etc/profile.bash_profile

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

อย่าลืมให้และทำตามสคริปต์ในการติดตั้งง่ายsource.bash_profile

นี่คือสคริปต์ที่แก้ไขปัญหาภาษา


3

มันใช้งานได้สำหรับฉัน

  1. export LANGUAGE=en_US.UTF-8
  2. export LANG=en_US.UTF-8
  3. export LC_ALL=en_US.UTF-8
  4. sudo locale-gen en_US.UTF-8
  5. sudo dpkg-reconfigure locales


1

สิ่งที่ทำงานให้ฉันมีดังนี้:

export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 sudo locale-gen en_US.UTF-8 sudo dpkg-reconfigure locales

สำหรับการแก้ปัญหาอย่างถาวรคุณสามารถใส่

export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8

ในของคุณ.zshrcหรือ.bashrc

อ้าง

  1. https://jee-appy.blogspot.com/2016/02/set-locale-on-ubuntu-permanent-solution.html
  2. https://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.