昨天emerge了gcc 4了,順便更新了glibc。沒想到今天問題就來了。
首先是fcitx不能用了,就是說ctl-space不能輸入中文了,于是我就看一下環境變量,發現locale的輸入結果也有錯了
#locale
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
LC_CTYPE=zh_CN
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
這種問題以前一直沒遇到過,于是一頓google,終于找到了解決的辦法
首先編輯 /etc/locales.build文件,加上
zh_CN.GBK/GBK
zh_CN.UTF-8/UTF-8
然后加上userlocales的USE重新emerge glibc
硬盤一通狂閃,cpu利用率狂高后,終于一切靜了下來
Gentoo下我一直沒找到象red hat下的i18n這樣配置locale的文件
很久很久以前我用的解決方法就是直接把我要的locale寫到一個文件中,譬如100i18n,然后把改文件放入/etc/env.d了事
因為我用了zh_CN.GBK的LC_CTYPE,終端下顯示中文時老是有亂碼
于是我就把100i18n般了家,直接改名為i18n放的/etc/下,并在文件的末尾export所用變量,文件內容如下
LANG=en_US
XIM=fcitx
LC_NUMERIC=zh_CN.GBK
LC_TIME=zh_CN.GBK
LC_CTYPE=zh_CN.GBK
XIM_PROGRAM=fcitx
XMODIFIERS="@im=fcitx"
export LANGUAGE XIM LC_NUMERIC LC_TIME LC_CTYPE XIM_PROGRAM XMODIFIERS
OK,最好在~/.xinitrc中加如一句source /etc/i18n
這樣只有在X下LC_CTYPE才會是zh_CN.GBK,終端就不會有亂碼了:)
OK,扯遠了,回到我們的問題。
我本以為emerge玩glibc后就可以直接source /etc/i18n后重啟fcitx就功德圓滿了
沒想到還是不行,雖然locale命令沒有錯誤輸出了,但fcitx仍不能輸入中文
最后只能重啟X,終于可以來這里涂鴉了:D:D