`Gtk-WARNING **: ไลบรารีภาษา C ไม่รองรับ `เมื่อเริ่มต้นแอพจาก commandline


31

ฉันไม่ได้รับคำตอบ แต่ฉันไม่ได้ทำอะไรเลยและนี่เป็นหัวข้อที่น่าสนใจ ใน Ubuntu 12.04 เมื่อเปิดไฟล์ใน gedit หรือถ้าฉันกำลังทำงานในบรรทัดคำสั่งใน dpkg ฉันได้รับข้อผิดพลาด "ไม่รองรับภาษาไม่รองรับกลับไปสู่ไลบรารี" C "เริ่มต้นและด้านล่าง

Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

ดูเหมือนว่าสถานที่ของคุณจะถูกทำลาย คุณติดตั้ง Ubuntu อย่างไร? ดูเหมือนว่าคุณจะติดตั้งในลักษณะที่มีการกำหนดค่าไม่ถูกต้อง โปรดให้ข้อมูลเพิ่มเติมบางส่วนเกี่ยวกับสิ่งนั้นในคำถามของคุณ (แก้ไข) และไม่Cสถานที่เกิดเหตุคือที่ที่มันกลับไปหากไม่มีการแปล มันมาจากภาษาการเขียนโปรแกรม C
gertvdijk

ขอบคุณสำหรับการตอบกลับ. การติดตั้ง Ubuntu ของฉันคือโฟลเดอร์ภายในไดเรกทอรี Windows ฉันรู้ว่าทำไมฉันติดตั้งที่นั่น ฉันขี้เกียจที่ติดตั้งและอนุญาตให้อสูร Linux ทำส่วนนั้นให้ฉัน
Diogenes Lantern

คำตอบ:


30

ก่อนอื่นตรวจสอบให้แน่ใจว่าได้ติดตั้งภาษาไลบรารีของคุณแล้ว

sudo apt-get install language-pack-en-base,

ตัวอย่างเช่น.

จากนั้นในฐานะ superuser ทำให้งานสั้นลงโดยอนุญาตให้ Ubuntu ตั้งค่าโดยอัตโนมัติ:

sudo dpkg-reconfigure locales

ตรวจสอบการตั้งค่าของคุณว่าถูกต้องหรือไม่ แต่ถ้าคุณมีการตั้งค่าLANG=หรือLANGUAGE=เปล่าให้เรียกใช้ในบรรทัดคำสั่ง:

locale -a

ซึ่งสร้างสถานที่ติดตั้งและพร้อมให้คุณใช้งาน

เลือกโลแคลจากเอาต์พุตที่สร้างขึ้นที่เหมาะกับสถานการณ์ของคุณและเอ็กซ์พอร์ตการตั้งค่านั้นเพื่อแทนที่โลแคลของคุณตัวอย่างเช่น:

export LC_ALL="en.utf-8"

สำหรับการติดตั้งแบบแมนนวลใช้exportเพื่อตั้งค่าโลแคลด้วยมือซึ่งจะติดตั้งโลแคลที่กำหนดเองด้วยตนเองก่อนอื่นให้รันการตั้งค่าดังกล่าวข้างต้น

แล้วบอกว่าคุณต้องการติดตั้ง"en_us-8"ภาษา แต่มีความต้องการที่เกิดเหตุอีกNUMERICและTIMEคุณอาจต้องการที่จะใช้"en_NZ.utf-8"(จำเหล่านี้เป็นกรณี ๆ ไป) หรือและLANGUAGE="en_GB.utf-8" NUMERIC="en.dk.ISO-8859-15"การเดินทางไปนิวซีแลนด์ฉันสามารถเปลี่ยนสถานที่LANGUAGE="en.NZ"ได้ สำหรับเยอรมนีฉันจะต้องติดตั้ง locales pkg สำหรับมันและอินพุตในเทอร์มินัลเช่นตัวอย่างด้านล่าง:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= อาจยังคงว่างเปล่า


3

ครั้งแรก:

sudo apt-get purge locales

แล้ว:

sudo aptitude install locales

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

sudo dpkg-reconfigure locales

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


1
นี่เป็นสิ่งที่ทำให้เข้าใจผิดมาก postgresqlไม่เคยใช้คำตอบนี้คำสั่งแรกจะลดลงซอฟแวร์เป็นจำนวนมากพร้อมกับข้อมูลของพวกเขาเช่น
Eric Wang

@EricWang คุณถูกต้องว่าอาจทำให้ซอฟต์แวร์อื่น ๆ หล่นและสิ่งนี้จะเกิดขึ้นเพราะซอฟต์แวร์นั้นใช้ไลบรารี libc6 2.19 (หรืออะไรที่สูงกว่า) บ่อยครั้งที่ซอฟต์แวร์นั้นเป็นสิ่งที่อัพเกรดระบบของคุณและวางไว้ในสถานะของโลแคลที่ไม่ได้รับการสนับสนุนจากไลบรารี C โดยไม่คำนึงถึงคุณควรตรวจสอบสิ่งที่จะถูกลบออกก่อนที่จะยืนยัน
tkjef

3

สิ่งนี้เกิดขึ้นกับฉันมากกว่าหนึ่งครั้งในเพื่อนร่วมงาน 18 คนของฉันซึ่งขึ้นอยู่กับ Ubuntu 16.04 ดังนั้นฉันจึงต้องการแบ่งปันโซลูชันที่ฉันพบในกรณีที่ใครก็ตามต้องการ

ขั้นตอน:

(ขั้นตอนเหล่านี้ใช้ได้กับเพื่อนมินต์ แต่ Ubuntu อาจมีการกำหนดค่าที่คล้ายกัน แต่ไม่แน่ใจ)

  • เปิด "การตั้งค่าภาษา"
  • ติดตั้งภาษาหากไม่มี (สำหรับฉันฉันจะติดตั้งภาษาจีนและญี่ปุ่นเพิ่มเติมจากภาษาอังกฤษ)
  • สำหรับตัวเลือกLanguageและRegionตรวจสอบให้แน่ใจว่าภาษาเริ่มต้นสำหรับพวกเขาเหมาะสมเช่นตั้งค่าเป็น "อังกฤษ, สหรัฐอเมริกา UTF-8",
  • รีบูทหากมีการเปลี่ยนแปลงใด ๆ
  • ตรวจสอบว่ามันใช้ได้หรือไม่

0

ด้วยตำแหน่งที่ตั้งคุณต้องลบภาษาที่ขัดแย้งกับระบบของคุณสิ่งนี้ใช้ได้สำหรับฉันบน ubunty kylin 16.04 ฉันได้ติดตั้งบน Ubuntu 14.04 แล้ว


0

มันทำงานได้ถูกต้องสำหรับฉันโดยไปที่ gnome-terminal และพิมพ์คำสั่ง apt - locales แก้ไขและรีบูท linux ของคุณและการรอคอยข้อผิดพลาดเทอร์มินัลคือ over.it มันจะอยู่บนหน้าจอของคุณในเวลานี้อย่างแน่นอน


0
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc

fi_SE ไปยัง LOCALE ของคุณและดู UTF-8 หรือ utf8


0

ฉันจัดการเพื่อทำให้เกิดนี้เองเมื่อมีการย้ายไฟล์ไดเรกทอรีบ้านจุดไปยังเครื่องใหม่และฉันไม่สามารถระบุสาเหตุในขณะที่อยู่ในบัญชีของการค้นหาไฟล์สำหรับการแต่ไม่LC_LOC

~/.bashrcผมคัดลอกไฟล์มีดังต่อไปนี้:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(ค่าเฉพาะที่นี่เป็นผลมาจากการทดลองก่อนหน้ากับ GNU Guix บนเครื่องเก่า แต่ความจริงที่เกี่ยวข้องคือเพียงแค่ว่าตัวแปรสภาพแวดล้อมถูกตั้งค่าเป็นเส้นทางที่ไม่ถูกต้องในขณะนี้)

ซึ่งส่งผลให้เกิดข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้โปรแกรมต่าง ๆ :

Warning: locale not supported by C library, locale unchanged

และข้อผิดพลาดเหล่านี้เมื่อทำงาน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

การลบ (หรือแสดงความคิดเห็น) LOCPATHบรรทัดจะแก้ไขปัญหาของฉัน

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