2011年11月28日星期一

怒斥Ubuntu

先讲个故事。你闻到家里很臭,但是不知道臭味从哪里来的。最后发现是家里的保姆偷偷在墙角拉屎了。原来这位保姆有随地大小便的习惯。甚至在小区里面也喜欢随地大小便,不过小区被物业和所有业主盯着,所以保姆很少在小区干,而且拉完后自己会立刻清理掉。恶心吧?

其实这个保姆就是Ubuntu。

今天想在软件中心找个软件,考虑到英文界面下看到的评分和评论会比较多,就想把语言从中文切换回英文。可是在设置的语言支持里面改了之后,部分locale是en了,但有几个还是zh,设置语言的图标名称还是“语言支持”中文的,而不是Language Support。

试着修改/etc/default/locale,把~/.config移除,用了locale-gen --purge把其它locale都删除,还有localepurge软件,都无效。只好又在/etc下用grep -R zh_CN *来搜索了,发现/etc/environment文件里面赫然写着中文locale的环境变量:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANGUAGE="zh_CN:en"
LANG="en_US.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
我把里面几个locale的环境变量都删除,还重启了电脑,仍然无效,上面几个locale设置还是有效。真是气愤这破玩意!

我又在家目录下用grep -R zh_CN `ls -A | grep '^\.'`搜索,愤然发现.profile的最后几行:
export LANG="en_US.UTF-8"
export LANGUAGE="zh_CN:en"
export LC_MESSAGES="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_COLLATE="zh_CN.UTF-8"
这几行删除掉后终于干净了。你妈的,都污染到.profile文件了。好吧,拉就拉吧,谁让你住我家呢,可是你他妈的能不能拉完了清理一下啊,害老子浪费一上午时间!我已经默念无数遍Fuck Ubuntu了。

/etc下面的配置文件,系统在软件安装、删除、升级的时候一般都会考虑到配置。而家目录下的设置,软件往往只管写,软件删除了这些配置也保留,当然这是对的,这是用户数据要一直留着;软件升级了也不会对应升级,如果配置文件不兼容了那就会出问题。

Ubuntu把设置直接写到.profile这么关键的文件中,而且又是locale这种重要的系统变量,如果只管写而不考虑后面的清理工作,那就太不负责了。不知道这是哪个白痴开发者干的。甚至/etc/environment都有疑问,我把中文的各种locale都删除了,这个文件里面却还留着中文的locale,需要自己去修改。

2011-11-29更新:发现~/.dmrc也被污染了,还保留着中文语言的信息。删掉还不行,要把中文的改成英文的才可以保留下来。

没有评论:

发表评论