ไม่พบโลแคล / การตั้งค่าโลแคลล้มเหลว - ฉันต้องทำอย่างไร


32

ฉันติดตั้ง Debian 7 i386 บน VPS (OpenVZ) แล้ว ทุกอย่างทำงานได้ดียกเว้นโลแคล - ความพยายามใด ๆ ที่จะติดตั้งสิ่งใดก็ตามที่แสดง:

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
[...]

สิ่งที่ฉันได้ลอง:

  1. การสร้างที่ตั้งเอง - update-locale LC_ALL="pl_PL.UTF-8"- แสดง: http://www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. เช่นเดียวกับdpkg-reconfigure localesการตั้งค่า + pl_PL.UTF-8, pl_PL.ISO-8859-2หรือแม้กระทั่งen_US: http://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (แม้แต่บนรูท):

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

นี่คือสิ่งที่แสดงให้เห็นถึงสถานที่:

root:~# locale
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
LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

ไม่พบสิ่งที่น่าสนใจใน / var / log แม้การเปลี่ยน repo เป็นทางการ + การกำจัดและตำแหน่งที่ตั้งการติดตั้งด้วยตนเองไม่สามารถแก้ปัญหาของฉันซึ่งปรากฏตัวในการติดตั้ง Debian 7 แต่ละครั้ง

คำตอบ:


22

ดูเหมือนว่าจะไม่มีการสร้างสถานที่ คุณได้เลือกpl_PL.UTF-8อย่างถูกต้องdpkg-reconfigure localesด้วยการกดspaceในบรรทัดที่สอดคล้องกัน?

ถ้าใช่เส้น

pl_PL.UTF-8 UTF-8

ใน/etc/locale.genไม่ได้แสดงความคิดเห็น (= ไม่ได้ขึ้นต้นด้วย#) หากคุณต้องการแก้ไขสิ่งนี้คุณต้องเรียกใช้locale-genเพื่อสร้างสถานที่ ผลลัพธ์ควรเป็น:

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

หากไม่ได้ส่งออกตำแหน่งที่ตั้งที่คุณต้องการสร้างดูเหมือนว่ามีบางอย่างผิดปกติกับระบบของคุณ เหตุผลหนึ่งอาจเป็นเพราะคุณได้localepurgeติดตั้ง หากไม่มีไฟล์ใน/usr/share/locale/pl/LC_MESSAGESหรือ/usr/share/locale/pl_PL/LC_MESSAGESนี่คือกรณีหรือระบบของคุณเสีย


1
มันได้ผล! ตำแหน่งที่เลือกใน /etc/locale.gen ยังแสดงความคิดเห็นอยู่ไม่รู้ว่าทำไม (ใช่ฉันจำได้เกี่ยวกับ spacebar) - อาจมีบางอย่างผิดปกติกับ CHMOD ขอบคุณ!
luke_g

1
โปรดทราบว่า-plowเป็นค่าเริ่มต้นจึงสามารถละเว้นได้ คุณต้องโทรdpkg-reconfigureเท่านั้นซึ่งจะเรียก locale-gen หลังจากคุณทำเครื่องหมายที่รายการที่คุณต้องการ
Stéphane Chazelas

@StephaneChazelas locale-genขอบคุณผมลบออกจากคำตอบและชี้แจงการใช้งานของ
กรกฎาคม

เป็นไปได้ก็คือถ้าคุณได้กำหนดค่า ฯลฯ ระบบของคุณสำหรับ en_US แต่คุณ/etc/locale.genมี en_GBuncommented ฉันสังเกตเห็นความผิดพลาดนี้ในหัวข้อนี้ที่นี่unix.stackexchange.com/q/287716/16920โปรดเพิ่มเข้าไปในกลยุทธ์ throubleshoot ด้วย
LéoLéopold Hertz 준영

12

ครั้งแรก:

sudo apt-get purge locales

แล้ว:

sudo aptitude install locales

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

sudo dpkg-reconfigure locales

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


ดูเหมือนว่าจะช่วย แต่คนต่อไปapt-get dist-upgradeจะทำลายมันอีกครั้ง
เซเว่น

ทำไมมันถึงแตกมัน? ณ จุดนั้นไม่ควรใช้ภาษาร่วมกับ libc6 ที่ใช้งานอยู่หรือ libc6 ของฉันถูกเปลี่ยนไปใช้โปรแกรมอื่น ฉันปรับลดรุ่นเป็นรุ่นเริ่มต้น libc6 เพื่อให้ระบบของฉันทำงานได้อย่างถูกต้อง ณ จุดนี้มันควรจะเข้ากันได้ดีกับ apt-get dist-upgrade
tkjef

1
apt-get install localesติดตั้งสถานที่บนตู้คอนเทนเนอร์เดเบียนของฉันเทียบท่า
Stephane

7

วิธีที่ง่ายและรวดเร็ว (แม้ว่ามันจะหมายถึงดิสก์ที่ใช้มากกว่าคนอื่น ๆ ):

apt install locales-all

1

ลองเรียกใช้

locale -a

ถ้าคุณได้รับ

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

ทางออกสำหรับสถานการณ์นี้คือการติดตั้งแพคเกจแพ็กเกจ (จากแพคเกจ glibc [1]) ในรสชาติเดเบียนหรือ glibc-all-langpacks CentOS / Fedora

[1] https://tracker.debian.org/pkg/glibc


glibc-localeไม่มีแพ็คเกจใน Debian
Yajo

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