CentOS 6 और लोकेल एरर


17

मैंने अभी CentOS 6 स्थापित किया है और जब भी मैं दूरस्थ रूप से SSH के माध्यम से सिस्टम में लॉगिन करता हूं, मुझे निम्न त्रुटि मिलती है:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)

जब मैं कमांड लाइन पर "लोकेल" टाइप करता हूं, तो मुझे निम्न आउटपुट मिलते हैं:

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
LANG=en_US.UTF-8
LC_CTYPE=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=

क्या समस्या हो सकती है? कैसे मैं इस मुद्दे को हल कर सकता हूँ?


SendEnv LANG LC_ * arg पर टिप्पणी करने के आपके समाधान ने मेरे लिए Mac OS X 10.7.5 पर काम किया

जवाबों:


10

जिस सर्वर से आप ssh करते हैं, क्या आपके पास एक वातावरण चर के माध्यम से एक स्थानीय सेट है? मेरे CentOS 6 इंस्टॉलेशन को देखते हुए, एकमात्र लोकेल जिसे मैं सपोर्ट कर सकता हूं, उसकी पहचान en_US.utf8( locale -aकमांड का उपयोग करके खोजा गया) के रूप में की जाती है। क्या यह समस्या हो सकती है?

अपने परीक्षण में, जब मैंने LC_ALLपर्यावरण चर को en_US.UTF-8सर्वर पर सेट किया , तो सर्वर को POSIXमेरे मामले में सेट किया गया था । यह वही है जब मैंने LC_ALLssh'ing से पहले वेरिएबल को सेट नहीं किया है (यानी परेशान) ।

जब मैंने अपना LC_ALLवैरिएबल सेट किया en_US.utf8या en_US.utf-8, मेरे CentOS 6 बॉक्स में ssh'd, लोकल का आउटपुट वही था जो सोर्स बॉक्स पर सेट किया गया था।

ध्यान दें कि मैंने UTF के लिए भी कोई कैप का उपयोग नहीं किया था।


11
वैसे, मैंने देखा कि यह मेरे मैक ओएस एक्स लायन ssh सेटिंग्स से हो रहा था। मैंने / etc / ssh_config फ़ाइल संपादित की और SendEnv लैंग LC_ * पर टिप्पणी की। इसने मेरी समस्या हल कर दी।
केम

@ टिप के लिए धन्यवाद, यह वास्तव में मैक ओएस एक्स शेर पर इसे ठीक करता है।
Zsolt Török

17

टर्मिनल सेटिंग्स> इस स्क्रीनशॉट के अनुसार उन्नत "स्टार्टअप पर स्थानीय वातावरण चर सेट करें" को अक्षम करके इसे हल किया।

यहाँ छवि विवरण दर्ज करें

नोट: यदि आप iTerm2 का उपयोग करते हैं, तो आप वरीयताएँ> प्रोफ़ाइल> टर्मिनल में "लोकल चर सेट करें" विकल्प को निष्क्रिय कर सकते हैं


1
इसने मेरे लिए काम किया। विशेष रूप से, Terminal.app "LC_CTYPE = UTF-8" सेट कर रहा था, जो तब ओपी द्वारा रिपोर्ट की गई त्रुटियों का कारण बना। वैकल्पिक रूप से, unset LC_CTYPEया export LC_CTYPE=en_US.UTF-8लॉगिन के बाद समस्या को ठीक करें।
tardate

यह मेरे लिए हल, thx
pjvds

12

सरल तरीका:

जोड़ना

 LC_CTYPE="en_US.UTF-8"

को /etc/sysconfig/i18n


यह मेरे लिए काम करता है, बहुत कोशिशों के बाद।
टॉमी

2

मेरे लिए जो कुछ काम किया गया वह इस तरह CentOS सर्वर में एक सिमिलिंक जोड़ रहा था:

ln -s /usr/lib/locale/en_US.utf8 /usr/lib/locale/UTF-8

एक बार जब आप इस काम को इस तरह से करते हैं:

export LC_CTYPE=UTF-8

यदि आप नहीं करते हैं, तो यह अंतिम कमांड इस त्रुटि के साथ विफल हो जाती है:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

अब, एक और भी सरल समाधान इस लाइन को सर्वर में / etc / bashrc में जोड़ रहा है:

export LC_CTYPE="en_US.utf8"

इनपुट के लिए धन्यवाद! यह वास्तव में बहुत अच्छा काम किया। अंत में उस कष्टप्रद टिप्पणी को हटाने में सक्षम ...
cristobal

2

मुझे यह विशिष्ट संदेश मिला है, जब सोलारिस एक्स से सेंटोस होस्ट में लॉगिन किया गया है।

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

समस्या 2 सेटिंग्स से आ रही है:

  1. मेरे डिफ़ॉल्ट सिस्टम ssh_config में, मैं सिस्टम को उन वेरिएबल को पास करने के लिए कहता हूं।

स्थानीय-संबंधित परिवेश चर भेजें

  1. मेरे स्रोत होस्ट पर, थिंग्स सेटिंग इस तरह से सेट की गई थी:

    SOURCE # LANG = LC_CTYPE = fr_FR.UTF-8 LC_NUMERIC = fr_FR.UTF-8 LC_TIME = fr_FR.UTF-8 LC_COLLATE = fr_FR.UTF-8 LC_MONETARY = fr_FR.UTF-8 LC_MESSAGES = frUT =

लेकिन, जैसा कि आप देख सकते हैं, LC_MESSAGES, fr.UTF-8 पर सेट है, जो मेरे गंतव्य होस्ट पर कोई विकल्प नहीं है।

 DEST#locale -a | grep fr_FR
 fr_FR
 fr_FR@euro
 fr_FR.iso88591
 fr_FR.iso885915@euro
 fr_FR.utf8

समस्या को मेरे स्रोत होस्ट, .bash_profile पर मजबूर किया गया: # निर्यात LC_ALL = fr_FR.UTF-8 निर्यात LANG = fr_FR.UTF-8

मैं अपने भाग्य होस्ट से यह पूछ सकता था कि इस चर को किसी ssh कनेक्शन से न लें (आम तौर पर, या अपने उपयोगकर्ता के लिए एक स्थानीय ssh_config फ़ाइल बनाकर)


1

स्थानीय Centos 6.2 सिस्टम पर: इससे कोई मदद नहीं मिली:

localedef -i en_US -f UTF-8 en_US.UTF-8

यह काम किया:

localedef --no-archive -i en_US -f UTF-8 en_US.UTF-8

में भी हट locale-archiveगया /usr/lib/locale। मुझे नहीं पता कि क्या यह आवश्यक था।


1

यह स्थानीय त्रुटियों के लिए अतीत में मेरा फिक्स था।

निम्नलिखित चलाएँ: लोकेल-जीन

फिर /etc/locale.gen संपादित करें। सुनिश्चित करें कि निम्नलिखित अपूर्ण है:

en_US.UTF-8 UTF-8  
en_US ISO-8859-1  

generate locale

locale-gen

1

Iterm2 के साथ , अलग है।
पर जाएं Iterm2 -> Preferencesपर जाएं, फिर Profilesटैब, और चयन Terminalनीचे से टैब। श्रेणी में
जाएं Environment, और अनमार्क करें;

स्वचालित रूप से स्थानीय चर सेट करें

अंत में, एक नया सत्र बंद करें और शुरू करें।

यहाँ छवि विवरण दर्ज करें


0

और सुनिश्चित करें कि LC_ALL="en_US.UTF-8"/ etc / sysconifg / i18n में या जोड़ा गया है

उदाहरण सामग्री

LANG="en_GB.UTF-8"
SYSFONT="latarcyrheb-sun16"
LC_ALL="en_US.UTF-8" 

-3

संपादित करें /etc/sysconfig/i18n

बदलें LANG="us"करने के लिएLANG="en_US"

सहेजें और बाहर निकलें, लॉग आउट करें और वापस अंदर जाएं।

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