安裝軟件時,都會去執(zhí)行update-locale命令除嘹,用來更新 locale。這個命令是 perl 腳本(可以用whereis update-locale查到)
上述警告并不是因為 update-locale 命令錯了定嗓,而是因為 perl 的配置出了問題裸影。
可以使用以下命令只運(yùn)行 perl 測試:
$ perl -e exit
perl 使用系統(tǒng)提供的默認(rèn) localezh_CN.UTF-8,但這個值是 ssh 從客戶端傳遞來的串前,系統(tǒng)其實不知道zh_CN.UTF-8該如何處理瘫里。
我們安裝語言包即可解決問題:
$ apt-get install language-pack-zh-hans
安裝一個中文語言,系統(tǒng)就知道zh_CN.UTF-8了荡碾,這個時候用perl就不會報錯了
這種情況一般是vps比較常見谨读,因為一般都是用ssh的方式連接到vps上的
sshd有這個機(jī)制,會把客戶機(jī)上的語言環(huán)境帶到遠(yuǎn)程的機(jī)器上
客戶機(jī)一般都會設(shè)置zh_CN.UTF-8語言坛吁,用來顯示中文劳殖,而遠(yuǎn)端的vps一般就只有en_US.UTF-8zh_CN.UTF-8一旦帶過去就會報找不到的錯誤铐尚,
網(wǎng)上還有些解決方法,并不是很靠譜哆姻,雖然從表面來看像解決問題了宣增,但其實是把問題影藏了
比如在遠(yuǎn)程主機(jī)上的/etc/ssh/sshd_config文件里,將AcceptEnv LANG LC_*這行注釋掉然后重啟遠(yuǎn)程的sshd矛缨,然后退出遠(yuǎn)程后爹脾,重新ssh上來。
這時箕昭,遠(yuǎn)程主機(jī)不會把客戶機(jī)的語言環(huán)境(zh_CN.UTF-8)帶過來
當(dāng)然就不會再有報錯灵妨,可惜的是,遠(yuǎn)程主機(jī)是無法正確顯示中文的落竹,問題還在泌霍,只是被隱藏了。