วิธีแก้ไขการตั้งค่าภาษาใน Debian บีบ


17

ฉันพบข้อผิดพลาดของสถานที่เป็นครั้งคราวและฉันพยายามเรียกใช้ dpkg- กำหนดค่าตำแหน่งที่ตั้งใหม่เพื่อแก้ไขปัญหา นี่คือผลลัพธ์:

:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    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_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

ฉันค้นหา / usr / bin / locale แต่ไม่มีอยู่ในระบบของฉัน ฉันจำเป็นต้องสร้างหรือไม่ ฉันจะใส่อะไรลงไป

นอกจากนี้ฉันพบคำถามที่เกี่ยวข้องซึ่งระบุว่าสาเหตุของปัญหาของเขาอยู่ในไฟล์ sshd_config ไฟล์มีรายการดังต่อไปนี้:

AcceptEnv LANG LC_*

ฉันกังวลเป็นหลักว่าอาจทำให้เกิดปัญหากับ VPS ของฉันไม่เช่นนั้นถ้าไม่มีอะไรสำคัญฉันยินดีที่จะเพิกเฉยต่อปัญหา ฉันควรทำอย่างไรดี? ขอบคุณ!


ปัญหาเดียวกันนี้ (LC_CTYPE = UTF-8 ซึ่งผิด) สามารถเกิดขึ้นได้เมื่อคุณล็อกอินผ่าน ssh จาก Mac ไปยังกล่อง linux และเทอร์มินัลของคุณจะตั้งค่าตัวแปรสภาพแวดล้อมโดยอัตโนมัติ มีช่องทำเครื่องหมายสำหรับสิ่งนั้น ยกเลิกการเลือกและคุณจะไปดี ใน iTerm อยู่ใน profile-> Terminal Tab
raarts

ดูเหมือนว่าจะมีข้อผิดพลาดบางอย่างจากการแจกจ่ายแบบเดเบียน (รวมถึง Ubuntu) การใช้ fr_FR.UTF-8 กำลังทำให้เกิดปัญหา (และมีโลแคลอยู่) การทำlocale-gen frจะสร้างตำแหน่งที่ตั้ง fr ทั้งหมด (fr_BE, fr_CH ฯลฯ ... ) แก้ปัญหา อาจจะลองlocale-gen en
แอนโทนีกิ๊บส์

คำตอบ:


10

ครั้งแรก:

sudo apt-get purge locales

แล้ว:

sudo aptitude install locales

และมีชื่อเสียง:

sudo dpkg-reconfigure locales

นี่จะทำให้ระบบโลแคลติดตั้งใหม่แล้วติดตั้งโลแคลและปรับลดระดับ libc6 ใหม่จาก 2.19 เป็น 2.13 ซึ่งเป็นปัญหา จากนั้นกำหนดค่าตำแหน่งที่ตั้งอีกครั้ง


ฉันมีปัญหาเดียวกันแน่นอน ดังนั้นคำตอบนี้และรวมทั้งที่เก็บ jessie ผมสามารถติดตั้งได้โดยไม่ต้องปรับลดlocales libc6
shgnInc

สิ่งนี้ไม่ได้ช่วย
aexl

8

หากสิ่งนี้เกิดขึ้นเมื่อ SSHing ไปที่กล่องของคุณ แต่ไม่ใช่ในคอนโซลให้ลองกำหนดค่าไคลเอ็นต์ ssh ใหม่ (บนเครื่องของคุณ) บน Mac OS X เช่น edit / private / etc / ssh_config และคอมเม้นท์

# SendEnv LANG LC_*

ขอขอบคุณที่โพสต์ของ bredman ในที่Rasberry Pi Bulletin Board


ไฟล์นี้ตอนนี้: / private / etc / ssh / ssh_config
b4d

7

ฉันมีปัญหานี้มาเป็นเวลานานและคำแนะนำทั่วไปเกี่ยวกับสถานที่ตั้ง dpkg-reconfigure, locale-gen และอื่น ๆ ไม่ได้ช่วยอะไร ดังนั้นฉันจึงเล่นกับตัวแปรสภาพแวดล้อมนิดหน่อยและสิ่งที่ฉันพบคือระบบกำลังทำงานกับLC_CTYPEตัวแปรสภาพแวดล้อม! UTF-8ไม่ใช่ค่าที่ถูกต้องสำหรับมัน การตั้งค่าให้en_US.UTF-8แก้ไข

เพื่อให้การเปลี่ยนแปลงเป็นแบบถาวรฉันจึงวิ่ง

update-locale LC_CTYPE=en_US.UTF-8

/etc/default/localeซึ่งเขียนไป จากนั้นรีบูตระบบเพื่อให้มีผลสมบูรณ์


น่าเสียดายที่ผลตอบแทนนี้perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). *** update-locale: Error: invalid locale settings: LC_CTYPE=en_US.UTF-8
aexl

2

ฉันเคยเห็นสิ่งนี้มาก่อนในการติดตั้ง Debian ที่เก่ากว่าและในขณะที่น่ารำคาญฉันไม่เคยเห็นมันทำให้เกิดปัญหา

ถ้า

  /usr/bin/locale 

หายไปลอง (เหมือนรูท):

  apt-get install libc-bin

ที่ควรติดตั้ง libc-bin, ให้ / usr / bin / locale

บรรทัด AcceptEnv ใน sshd_config ของคุณนั้นค่อนข้างมาตรฐานและไม่ควรเป็นสาเหตุของปัญหาของคุณที่นี่


ติดตั้ง libc-bin แล้วดังนั้นฉันจึงอัปเดตและลองเรียกใช้dpkg-reconfigure localesอีกครั้ง ไม่มีความสุข :(
blogjunkie

มี / usr / bin / locale อยู่หรือไม่ ถ้าเป็นเช่นนั้นอะไรคือผลลัพธ์ของ: locale -aและสิ่งที่อยู่ใน/etc/default/locale?
Chad Feller

เนื้อหาของ `/ etc / default / locale ': # ไฟล์ที่สร้างโดย update-locale LANG = en_US.UTF-8
blogjunkie

locale -aให้ฉัน: สถานที่: ไม่สามารถตั้งค่า LC_CTYPE เป็นสถานที่เริ่มต้น: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว C en_US.utf8 POSIX
blogjunkie

ฉลาดอ้างว่าติดตั้ง libc-bin แต่อย่างน้อยหนึ่งไฟล์หายไป (/ usr / bin / locale) และติดตั้ง libc-bin ดูเหมือนว่าจะได้รับการแก้ไข คุณลองได้apt-get install --reinstall localesไหม จากนั้นสำหรับการวัดที่ดีลองlocale-genซึ่งจะสร้างสถานที่ที่/etc/locale.genไม่ใส่เครื่องหมายใน(คุณควรมีบรรทัดเหมือนen_US.UTF-8 UTF-8) หลังจากนี้ดูว่าlocale -aใช้ได้หรือไม่
Chad Feller

2

ทำสิ่งต่อไปนี้ในชื่อ Manoj แต่เพิ่มลงใน # ~ / .bashrc:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8

1

หากคุณได้รับข้อผิดพลาดขณะ ssh'ing เป็นระบบรีโมตและไม่ต้องการแก้ไขระบบรีโมต (โดยการเปลี่ยน sshd_config เป็นต้น) คุณสามารถทำสิ่งต่อไปนี้บนระบบโลคัลของคุณ (สมมติว่าทุบตี)

export LC_ALL=en_US
export LANGUAGE=en_US

แล้ว ssh user@remote


1

ในสถานที่ติดตั้ง Debian ใหม่ (ขั้นต่ำ) ของฉันหายไปอย่างสมบูรณ์ การติดตั้งมัน ( aptitude install locales) และการรันlocale-genนั้นทำได้ยาก ดังนั้นทำตามที่ Chad Feller พูด แต่ตรวจสอบว่ามีการlocalesติดตั้งแพ็กเกจก่อน


0

หากคุณปิดใช้งานการตรวจสอบความถูกต้อง PAM สำหรับ ssh in /etc/ssh/sshd_config( UsePAM no) การกำหนดค่าที่รับผิดชอบ/etc/pam.d/loginไม่มีประสิทธิภาพ:

session required pam_env.so readenv=1 envfile=/etc/default/locale

ผลลัพธ์: /etc/default/localeดูเหมือนจะไม่มีผลใด ๆ

ดังนั้นคุณต้องกำหนดค่าไคลเอนต์ของคุณเพื่อส่ง VANG LANG หรือส่งออก env Vars ในสคริปต์โปรไฟล์เช่น~/.profile, ~/bashrcฯลฯ

เพิ่มเติมได้ที่: http://wiki.debian.org/Locale#Standard


0

ฉันใช้ VPS ภาษาเยอรมันและไม่สามารถเปลี่ยนภาษาได้เนื่องจากไม่มีการติดตั้งชุดภาษาอังกฤษ

หลังจากติดตั้งฉันสามารถเปลี่ยนสถานที่ได้ในที่สุด

aptitude install language-pack-en

0

บนระบบ Debian สิ่งนี้จะช่วยแก้ปัญหาของคุณ:

apt-get install locales-all

บนระบบ Ubuntu ติดตั้งชุดภาษาเฉพาะตัวอย่างเช่น:

apt-get install language-pack-en

locale-gen en_US.UTF-8


0

Mac กำลังเชื่อมต่อกับ Debian 10 ที่ติดตั้งใหม่ ไม่มีคำตอบใด googled ทั่วแลกเปลี่ยนแลกเปลี่ยนช่วย นี่คือสิ่งที่ทำ (และตรงไปตรงมาและเชื่อถือได้ด้วย):

sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config

เรียกใช้สิ่งนี้ในกล่อง Debian ของคุณและจะหยุดการเชื่อมต่อเครื่อง mac จากการทำให้เกิดปัญหาในตำแหน่งที่ตั้งเซิร์ฟเวอร์ ( ข้อมูลเพิ่มเติม )

เป็นโบนัสที่อาจปรับปรุงความปลอดภัยของเซิร์ฟเวอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.