mosh- सर्वर को चलाने के लिए UTF-8 मूल लोकेल की आवश्यकता होती है


9

मैं अपने Gentoo से RHEL सर्वर से जुड़ने की कोशिश कर रहा हूं। दोनों ने moshस्थापित किया है, हालांकि मुझे यह त्रुटि मिलती है:

petanb@localhost ~/Documents $ mosh root@server 
mosh-server needs a UTF-8 native locale to run.

Unfortunately, the local environment ([no charset variables]) specifies
the character set "US-ASCII",

The client-supplied environment ([no charset variables]) specifies
the character set "US-ASCII".

LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Connection to server closed.
/usr/bin/mosh: Did not find mosh server startup message.

RHEL में मेरे पास निम्नलिखित स्थान हैं:

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

मैं इसे कैसे ठीक करूं?

अद्यतन: समस्या Gentoo की ओर से प्रतीत होती है, डेबियन सर्वर से जुड़ने से एक ही त्रुटि उत्पन्न होती है, अन्य डिस्ट्रोस कार्यों का उपयोग करके कनेक्ट होता है।

UPDATE2: मैंने इसे जोड़कर तय किया

LANG="en_US.UTF-8"
export LANG

में ~/.bashrc


उबंटू या डिबियन जैसे डिस्ट्रो का उपयोग करने वालों के लिए, यहाँ एक समाधान हो सकता है।
पाब्लो ए

जवाबों:



3

moshद्वारा समर्थित स्थानीय वातावरण का उपयोग करता है ssh। हालांकि moshस्पष्ट रूप से कोई क्रिया-या डिबग-विकल्प नहीं है, आप यह बता सकते हैं कि sshकनेक्ट करते समय और उपयोग करके कौन सी कमांड का उपयोग किया -vvvजा सकता है, यह sshदिखा सकता है कि यह किस स्थानीय चर को भेजता है

उदाहरण के लिए, के साथ शुरू

mosh -ssh='ssh -vvv' root@server

आप देख सकते हैं

debug1: Sending env LC_ALL = C  
debug2: channel 0: request env confirm 0

POSIX के लिए, और

debug1: Sending env LC_CTYPE = en_US.UTF-8
debug2: channel 0: request env confirm 0

जो दिखाते हैं कि सर्वर उपयोग किए जाने वाले चर की पुष्टि करता है। रिमोट sshdआपके AcceptEnvकॉन्फ़िगरेशन के लिए sshd- या आपके उपयोगकर्ता की SendEnvसेटिंग्स (आपके sshकॉन्फ़िगरेशन में) के आधार पर आपके कुछ वातावरण को अनदेखा कर सकता है ।

सभी सर्वर ssh के माध्यम से आपके लोकल वेरिएबल को स्वीकार नहीं करते हैं।

अनुमत रूप से कॉन्फ़िगरेशन सेटअप के साथ भी, यह अभी भी संभव है (विशेषकर जब से आप रूट उपयोगकर्ता से कनेक्ट कर रहे हैं ) कि किसी ने फैसला किया है कि उस उपयोगकर्ता के लिए लोकेल POSIX होना चाहिए। के लिए जड़ , कि कुछ समझ में आता है क्योंकि आप चयन से कम मुसीबत में हैं / को कॉपी पेस्ट।

उदाहरण के लिए, कुछ सिस्टम /etc/profile.d/lang.shइंटरैक्टिव उपयोग के लिए स्थान निर्धारित करने के लिए उपयोग करते हैं। वह स्क्रिप्ट एक प्रणाली से दूसरे में भिन्न होती है, और एक स्पष्टीकरण के लिए दूसरे स्थान पर (ssh / sshd विन्यास के बाद) यह पता लगाने के लिए है कि दूरस्थ प्रणाली में स्थानीय जानकारी क्यों नहीं दी जाती है। Red Hat (CentOS) के साथ स्क्रिप्ट सिस्टम से जानकारी प्राप्त करने का प्रयास करती है- और घर-विन्यास, जैसे,

if [ -n "$LANG" ]; then
    saved_lang="$LANG"
    [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1
    LANG="$saved_lang"
    unset saved_lang
else
    for langfile in /etc/locale.conf "$HOME/.i18n" ; do
        [ -f $langfile ] && . $langfile && sourced=1
    done
fi

SuSE अलग है, अनिवार्य रूप से एक ही फाइल को पढ़ने से पहले ssh और gdm के बारे में धारणा बनाना :

#
# lang.sh:      Set interactive language environment
#
# Used configuration files:
#
#     /etc/sysconfig/language
#     $HOME/.i18n
#

#
# Already done by the remote SSH side
#
test -z "$SSH_SENDS_LOCALE" || return

#
# Already done by the GDM
#
test -z "$GDM_LANG" || return

आपके विशेष सर्वर (निर्दिष्ट संस्करण नहीं) के लिए, स्क्रिप्ट एक रिलीज़ से दूसरे में भिन्न हो सकती है। मेरे डेबियन सर्वर के पास वह फ़ाइल नहीं है - और इंटरेक्टिव लोकेल सेट करने के लिए डिफ़ॉल्ट सिस्टम लोकेल और जीडीएम (जो भिन्न हो सकते हैं) पर भरोसा करते हैं। आपका ssh कनेक्शन एक्स (gdm के माध्यम से) का उपयोग कर एक इंटरैक्टिव सत्र की तुलना में सिस्टम लोकेल के साथ एक अलग मूल्य का उपयोग कर सकता है। उस स्थिति में, सिस्टम लोकेल ठीक करने की जगह है ( डेबियन विकि में लोकेल देखें )।

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