歡迎您光臨本站 註冊首頁

Ubuntu Locale配置問題根源解決之道

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

作者:水滴石穿
常見錯誤

1. No such file 用locale命令的時候就會出現

locale: Cannot set LC_CTYPE to default locale: No such file or directory
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

2. perl warning, please check if supported 在apt-get install/remove的時候出現

perl: warning: Please check that your locale settings: LC_ALL = (unset), LC__FASTMSG = "true", LC_MESSAGES = "", LANG = "zh_CN" are supported and installed

相關命令

locale 查看現在的locale配置環境

localepurge 配置需要的locale(如果沒有這個命令,用apt-get install localepurge安裝)

locale-gen 生成需要的locale文件,

參數 --purge用來刪除所有舊的配置,在出現問題時很有用

相關的文件

其實在man locale-gen和man locale裡面都講到了,我還在網上查資料,浪費時間,悔之晚矣……

/usr/share/i18n/SUPPORTED
List of supported values (and their associated encoding) for the
locale name. This representation is recommended over
--all-locales one, due being the system wide supported values.

/var/lib/locales/supported.d/*
List all locales to generate. File format is similar to /usr/share/i18n/SUPPORTED.

/usr/lib/locale//LC_*
Compiled locale data.這些就是用locale-gen編譯出的locale文件了

/etc/environment 編輯這個文件可以手動配置locale環境變數,LC_CTYPE之類的,具體有哪些可配置的變數,都是什麼含義,用man locale就能看到了

解決問題

很簡單,重新生成所有的locale配置,其實網上的資料只是漏掉了--purge參數而已

第一步:配置自己想要的locale。普遍推薦的方法是拷貝所有ubuntu支持的locale到自己的配置文件里,然後編輯。

cp /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/local

vi /var/lib/locales/supported.d/local,用dd命令刪啊刪,只留下en_系列和zh_系列, 或者其他你要的locale

rm /var/lib/locales/supported.d/en

rm /var/lib/locales/supported.d/zh 這兩個文件跟local一樣功能,也可以把en系列寫在en文件里,zh系列寫在zh文件里,分類方便而已。我既然都寫在local里,這兩個就用不著了。

第二步:重新生成locale支持文件

locale-gen --purge

這一步會將/usr/lib/locale/裡面的locale支持文件刪掉,重新生成。如果設置的locale沒有生成過,或者設置的時候拼寫錯誤,在這個目錄找不到同名的支持文件就會提示No such file了。

第三步:配置locale環境。

敲locale把輸出的那些環境變數拷貝到/etc/environment裡面,自己手工修改。可以設的值就是/var/lib/locales/supported.d/local裡面包括的值,或者生成在/usr/lib/locale/裡面的文件夾名稱。

第四步:退出重新登錄,再敲locale看看,沒錯誤了。

[火星人 ] Ubuntu Locale配置問題根源解決之道已經有431次圍觀

http://coctec.com/docs/linux/show-post-180963.html