ทำไมฉันถึงได้รับ“ ล้มเหลวในการตั้งค่าสถานที่ตั้งโดยค่าเริ่มต้นเป็น C” เมื่อใช้ yum


21

ทุกครั้งที่ผมทำงานyum installหรือyum updateที่ฉันได้รับ

ไม่สามารถตั้งค่าภาษาได้โดยตั้งค่าเริ่มต้นเป็น C

แล้วข้อมูลอื่น ๆ

ฉันจะหลีกเลี่ยงการรับคำเตือนนี้ได้อย่างไร

คำตอบ:


19

ฉันใส่การตั้งค่าภาษาต่อไปนี้ที่เกี่ยวข้องใน/etc/bashrc(สำหรับผู้ใช้ทั้งหมดbash):

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_COLLATE=C
export LC_CTYPE=en_US.UTF-8

จากนั้นเรียกใช้:

source /etc/bashrc

หรือออกจากระบบและเข้าสู่ระบบ


2
นี่อาจเป็นไป/etc/profile.d/lang.shได้และไม่/etc/bashrcน่าจะถูกแทนที่ด้วยการอัปเดต
ccpizza

@ ccpizza ฉันวางบรรทัดเหล่านั้นไว้ที่ด้านล่างสุดlang.shแล้วก็ใช้งานได้👍
Andrew Keeton

6

วิ่ง

yum reinstall glibc-common

จากนั้นตรวจสอบให้แน่ใจว่าไม่มีกระบวนการใดกำลังลบไฟล์ /usr/lib/locale/locale-archive.*


1
ฉันลองก่อนแล้วจะช่วยฉันได้ (ไม่ได้ตรวจสอบขั้นตอน)
35765

มันไม่ได้ผลสำหรับฉัน
แองเจโล

3
ในการกระจายใหม่ Red Hat Linux-based (Fedora 24 +, RHEL 8+) นี้จะเป็นเช่นglibc-langpack-<language> glibc-langpack-en
Michael Hampton

ในภาพ Centos Docker มีข้อผิดพลาดที่รายงานคือ: bugzilla.redhat.com/show_bug.cgi?id=1392855
Rowinson Gallego

2

คุณสามารถลอง

export LANG=en_US

หรือตั้งเป็นสิ่งที่คล้ายกัน หากวิธีนี้แก้ไขปัญหาให้คุณได้คุณสามารถแก้ไขได้ด้วยการแก้ไขโปรไฟล์ bash


นั่นไม่ได้ผลสำหรับฉัน ข้อเสนอแนะอื่น ๆ
ctilley79

2

ฉันได้รับข้อผิดพลาดเดียวกันใน MacOS เมื่อคุณ ssh ไปที่กล่อง linux พวกเขาปฏิเสธที่จะตั้งค่าUTF-8ภาษา คุณสามารถเห็นความแตกต่างในการตั้งค่าโลแคลโดยเรียกใช้localeคำสั่งบนเทอร์มินัล MacOS และกล่อง Linux

หากต้องการแก้ไขข้อผิดพลาดนี้ให้เปิดเทอร์มินัล -> การตั้งค่า -> โปรไฟล์ -> ขั้นสูงและยกเลิกการตั้งค่าSet locale environment variables on startupบน mac ของคุณ

ตอนนี้เมื่อคุณเรียกใช้localeบน mac คุณจะเห็นว่าการเปลี่ยนแปลงนี้ได้ตั้งค่าไว้LC_CTYPE="C"ซึ่งเป็นการLC_CTYPE="UTF-8"ตั้งค่าก่อนหน้า

yum updateคุณจะต้องปิดสถานีของคุณจะมีผลนี้และตอนนี้เข้าสู่ระบบไปยังกล่องลินุกซ์และการทำงานของคุณ

หวังว่าจะช่วย :)


2

หากคุณใช้ SSH เพื่อเชื่อมต่อกับโฮสต์นี้จากเครื่องเดสก์ท็อปเป็นเรื่องปกติที่/etc/ssh/sshd_configจะมี

AcceptEnv LANG LC_*

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

เพื่อแก้ไข:

ตัวอย่างเช่นในหน้าต่าง Windows 10 Ubuntu Shell ก่อนอื่นให้ทำ ( หมายเหตุ: เปลี่ยนรายการทั้งหมดด้านล่างเพื่อจับคู่โลแคลของคุณหากไม่ใช่ "en_US.UTF-8" ):

sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

จากนั้นปิดหน้าต่างเชลล์ Ubuntu และเปิดใหม่จากนั้น SSH ลงในเซิร์ฟเวอร์ที่คุณพยายามกำหนดค่าและดูว่าทุกอย่างเรียบร้อยดีหรือไม่ ...

ถ้าไม่เช่นนั้น SSH เข้าสู่เซิร์ฟเวอร์ของคุณและทำ:

vi /etc/profile.d/custom.lang.sh

จากนั้นกดIเพื่อเข้าสู่โหมด "แทรก" จากนั้นวางรายการด้านล่าง จากนั้นZZบันทึกและออก:

## US English ##
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

จากนั้นดำเนินการต่อไปนี้:

source /etc/profile.d/lang.sh
source /etc/profile.d/custom.lang.sh

แล้ว:

reboot

ดูว่านั่นทำให้ทุกอย่างหยุดบ่นเกี่ยวกับสถานที่เกิดเหตุ

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