स्थान निर्धारित नहीं किया जा सकता है; सुनिश्चित करें कि $ LC_ * और $ LANG सही हैं!


49

जब मैं हमेशा नया पैकेज स्थापित करने की कोशिश करता हूं तो मुझे यह संदेश मिलता है:

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

मेरा ओएस फ्रेंच कीबोर्ड के साथ अंग्रेजी का उपयोग करते हुए डेबियन जेसी 8.3 (मेट) है। जब मैं लोकेल टाइप करता हूं, तो मुझे यह मिलता है:

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=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

जवाबों:


62

स्रोत रूप में डेबियन जहाजों के स्थान। उन्हें स्पष्ट रूप से संकलित करने की आवश्यकता है। इसका कारण यह है कि संकलित स्थान बहुत अधिक डिस्क स्थान का उपयोग करते हैं, लेकिन अधिकांश लोग केवल उनमें से कुछ का उपयोग करते हैं।

dpkg-reconfigure localesरूट के रूप में चलाएं , सूची में इच्छित स्थान चुनें (अपनी सेटिंग्स के साथ, आपको आवश्यकता है en_GBऔर en_US.UTF-8- मैं चयन करने की सलाह देता हूं en_USऔर en_GB.UTF-8साथ ही) फिर दबाएं <OK>

वैकल्पिक रूप से, संपादित करें /etc/locale.gen, अपने इच्छित स्थानों के लिए लाइनों को अनइंस्टॉल करें और locale-genरूट के रूप में चलाएं ।

(नोट: उबंटू पर, यह अलग तरह से काम करता है: locale-genउन स्थानों के साथ चलाएं जिन्हें आप तर्क के रूप में उत्पन्न करना चाहते हैं, उदाहरण के लिए sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8।)

वैकल्पिक रूप से, डेबियन के पास अब एक पैकेज है locales-allजिसे आप इसके बजाय स्थापित कर सकते हैं locales। इसमें सभी स्थान पहले से जनरेट किए गए हैं। नकारात्मक पक्ष यह है कि वे अधिक डिस्क स्थान (112 एमबी बनाम 16 एमबी) का उपयोग करते हैं।


1
यह काम किया है, लेकिन केवल जब मैंने लॉग आउट किया और फिर फिर से लॉग इन किया।
फोरविन

मेरे लिए भी काम किया!
जैमी इवानोव

संपादन /etc/locale.genने मेरे लिए काम नहीं किया (लॉगआउट / लॉगिन किया), लेकिन locale-genमेरी tmux: need UTF-8 locale (LC_CTYPE)समस्या को हल कर दियाDebian 4.9.82
eapo

2
@eapo जैसा कि मैं अपने उत्तर में बताता हूं, आपको संपादित करने /etc/locale.gen और फिर चलाने की आवश्यकता है locale-gen
गिल्स एसओ- बुराई पर रोक '30

मैं en_US.UTF-8भी और अपने खुद के स्थान को सक्षम करने के बारे में थोड़ा याद किया । मुझे यह पता चला कि पहले तो यहाँ से गुजरने से पहले मुझे अपना जवाब देने के लिए कठिन रास्ता तय करना पड़ा था।
एलिस्टेयर मैककॉर्मैक

19

शीर्ष रेटेड समाधान ने मेरे मामले में मदद नहीं की, इसलिए मैंने इसका उपयोग किया:

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

उसके बाद, मैंने लॉग आउट किया और लॉग इन किया और त्रुटि गायब थी।


2
LC_ALL का उपयोग दृढ़ता से हतोत्साहित किया जाता है क्योंकि यह सब कुछ ओवरराइड करता है। कृपया इसका उपयोग केवल परीक्षण के समय करें और इसे स्टार्टअप फ़ाइल में कभी सेट न करें। प्रति के रूप में: wiki.debian.org/Locale
पिटोन मालाडेटो

6

इन आदेशों ने मेरी जान बचाई

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8

5

यदि आप एक रास्पबेरी पाई (या अन्य?) पर इस मुद्दे को ले रहे हैं और जब आप पाई के लिए ssh करते हैं तो आपको त्रुटि हो रही है 2 अन्य समाधान हैं

एक /etc/ssh/sshd_configपाई पर संपादित किया जाता है और लाइन पर टिप्पणी करता है

AcceptEnv LANG LC_*

उदाहरण के लिए sudo nano /etc/ssh/sshd_config

जिसके बाद आपको ssh सर्वर को रिस्टार्ट करना चाहिए

sudo systemctl restart ssh

दूसरा आपके क्लाइंट मशीन पर है ( पीआई नहीं ) एडिट /etc/ssh/ssh_config(ऊपर से अलग रास्ता) और लाइन बाहर टिप्पणी करें

SendEnv LANG LC_*

ये दोनों ही मेरे लिए असुविधाजनक हैं, लेकिन समस्या अभी भी है। (RPi3, macOS10.14)
jorijnsmit

टिप्पणी की बाहर अब लाइन। वास्तव में परीक्षण करने का अवसर नहीं है, लेकिन इस तरह से अधिक तार्किक लगता है ... धन्यवाद।
जोर्जितस्मिथ

2

आपको पैकेज locales(या locales-allen_GB लोकेल, आपके पास डेबियन संस्करण पर निर्भर करता है) स्थापित करने की आवश्यकता है ।

वर्कअराउंड में ऐसी त्रुटियां नहीं हैं: LANG=Cरूट पर सेट करें, ताकि यह बिना किसी लोकेशन का उपयोग करे ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.