安装中文字库
安装Linux OBI 5.2.01后,发现虽然session language选择了中文,但进入KDE后中文都显示为方块乱码,应该是缺少中文字库。
参照http://www.liuzd.com/blog/219.html安装中文字体美化包linuxsir-fontconfig-3.4.bin,但发现安装后/usr/bin/system-config-network和其它KDE管理工具运行时出现下面错误。
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/sbin/system-config-network-gui", line 67, in <lambda>
PROGNAME, PRG_VERSION)
File "/usr/lib/python2.4/site-packages/rhpl/exception.py", line 337, in handleException
import gtk
File "/usr/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 48, in ?
from gtk import _gtk
ImportError: /usr/lib/libcairo.so.2: undefined symbol: FT_GlyphSlot_EmboldenOriginal exception was:
Traceback (most recent call last):
File "/usr/sbin/system-config-network-gui", line 70, in ?
import gtk
File "/usr/lib/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 48, in ?
from gtk import _gtk
ImportError: /usr/lib/libcairo.so.2: undefined symbol: FT_GlyphSlot_Embolden
重装系统后,比较发现美化包所带的freetype,fontconfig, libXft, pango等版本太旧,下面是美化包所带rpm包。
fcitx-2.1.0-2.i386.rpm fontconfig-2.2.92-0.5.linuxsir.i386.rpm fontconfig-devel-2.2.92-0.5.linuxsir.i386.rpm freetype-2.1.7-4.linuxsir.i386.rpm freetype-demos-2.1.7-4.linuxsir.i386.rpm freetype-devel-2.1.7-4.linuxsir.i386.rpm freetype-utils-2.1.7-4.linuxsir.i386.rpm libXft-2.1.2-4.i386.rpm pango-1.2.5-10.linuxsir.i386.rpm pango-devel-1.2.5-10.linuxsir.i386.rpm simsun-2.2-linuxsir.noarch.rpm
这是我在Linux OBI 5.2.01中查到的软件版本。除了simsun和fcitx外,其它包的版本都比它新。
fontconfig-2.4.1-7.el5 fontconfig-devel-2.4.1-7.el5 freetype-2.2.1-19.el5 freetype-devel-2.2.1-19.el5 libXft-2.1.10-1.1 libXft-devel-2.1.10-1.1 pango-1.14.9-3.el5 pango-devel-1.14.9-3.el5
另外打开美化包带的setup.kde,发现它在安装时使用“rpm -Uvh --force”,难怪我使用”rpm -e“时因为软件包相互依赖无法卸载它安装的包。于是修改setup.kde,删除所有”rpm -Uvh --force“行,只保留后面的修改conf文件,如下setup2。
#!/bin/bash if [ -f /etc/ld.so.conf ] ; then mv /etc/ld.so.conf /etc/ld.so.conf.old echo "/usr/lib" > /etc/ld.so.conf cat /etc/ld.so.conf.old >> /etc/ld.so.conf fi cp -rf /etc/fonts/fonts.conf.example /etc/fonts/fonts.conf cp -rf /etc/fonts/local.conf.example /etc/fonts/local.conf fc-cache -f > /dev/null 2>&1 if ! grep -i "font_name" /etc/gtk-2.0/gtkrc > /dev/null 2>&1 ; then cat >> /etc/gtk-2.0/gtkrc << EOF style "default" { font_name = "Tahoma,SimSun 10" } widget_class "*" style "default" EOF fi chkfontpath -a /usr/share/fonts/simsun /etc/init.d/xfs restart > /dev/null 2>&1 ldconfig
先运行“rpm -ivh simsun-2.2-linuxsir.noarch.rpm”安装simsun,再运行上面的代码。
删除/etc/profile.d/cfxmms.sh;
安装后console执行命令时会出现下面Warning,只要注释掉/etc/fonts/fonts.conf和/etc/fonts/local.conf中的”other_family“就可以了。
Fontconfig warning: "local.conf", line 84: unknown element "other_family"
Fontconfig warning: line 460: unknown element "other_family"
或者不用安装中文字体美化包,参见http://www.hacms.com/html/2010/0228/5985.html直接安装中文字体。
1. mkdir /usr/share/fonts/local 2. cp simsun.ttc /usr/share/fonts/local/simsun.ttf 3. cd /usr/share/fonts/local; ttmkfdir; cp fonts.scale fonts.dir; 4. chkfontpath -a /usr/share/fonts/local 5. service xfs reload
另外还有一种简单的方式设置中文显示,参见http://hi.baidu.com/jackjiaxiong/blog/item/c0284e6e52839ef74216942a.html。
# rpm -ivh fontconfig-2.4.1-7.el5.i386.rpm # rpm -ivh fontconfig-devel-2.4.1-7.el5.i386.rpm # rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm # service xfs reload
安装fcitx
下载安装fcitx-3.0.2-1.i386.rpm,在~/.bashrc中增加下面一行,就可以输入中文了。可以参照http://my.opera.com/wangzhijun/blog/show.dml/108169修改配置文件。
export XMODIFIERS="@im=fcitx"
[*]设置自动启动fcitx:
cd ~/.kde/Autostart/; ln -s /usr/bin/fcitx .
[*]reboot机器
安装完,发现fcitx和openoffice 3.0冲突,openoffice启动就没响应,将openoffice升级到3.2,问题依旧。
设置locale
为了使菜单保持为英文,但可以显示和输入中文,我在OBI Configuration Center选择English(USA),在Administration -> Language中选择English(USA),在Session language选择中国大陆,就可以使Firefox显示为英文版,mount分区时可以正常显示中文。
为了使Thundbird也显示为英文版,需要在/usr/bin/thunderbird头部增加
export LANG=en_US.UTF-8
为了在Thundbird和Firefox中使用fcitx,需要增加两行:
export LC_CTYPE="zh_CN.UTF-8" export XMODIFIERS="@im=fcitx"
下面是env输出的locale相关变量:
LANG=zh_CN.UTF-8 GDM_LANG=zh_CN.UTF-8 LC_CTYPE=zh_CN.UTF-8
/etc/sysconfig/i18n的内容:
LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16"
Acrobat显示中文
从http://ardownload.adobe.com/pub/adobe/reader/unix/8.x/8.1.2/misc/FontPack81_chs_i486-linux.tar.gz下载FontPack81_chs_i486-linux.tar.gz。
tar xvfz FontPack81_chs_i486-linux.tar.gz cd CHSKIT ./INSTALL
从这可以找到最新Acrobat和中文包:
http://www.adobe.com/support/downloads/product.jsp?platform=unix&product=10
ftp://ftp.adobe.com/pub/adobe/reader/unix/
参考资料:
linux乱码问题:LANG变量的秘诀
LANG,LC_ALL,local详解(转)
Redhat 9中,几个关于中文字体和输入法的小结
fcitx 关于多语言,不同编码的一点说明;同时也可以用于解决fcitx不能输入问题
fcitx安装错误
注意:尽量使用"System" - "Add/Remove software"界面,避免执行yum install或rpm -Uvh,以免造成KDE崩溃。