錯誤:locale: Cannot set LC_CTYPE to default locale: No such file or directory locale:
重新生成所有的locale配置
第一步:配置自己想要的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
如:
root@linuxidc:~# more /var/lib/locales/supported.d/local
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
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/default/locale裡面,自己手工修改。
如:
root@linuxidc:~# more /etc/default/locale
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE=zh_CN.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=
LANGUAGE=en_US:en
GST_ID3_TAG_ENCODING=GBK
LANG=en_US.UTF-8
可以設的值就是/var/lib/locales/supported.d/local裡面包括的值,或者生成在/usr/lib/locale/裡面的文件夾名稱。
第四步:退出重新登錄,再敲locale看看,沒錯誤了
更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2