前言
根据多位玩家在 China Linux Forum 发表的帖子, 经过两昼夜的反复实践,
终于搞定了可爱的""小红帽"",提出一套初步的中文化解决方案.本文未有发明,
仅以安装过程之经验,供同挤相互印证.
一 安装 RedHat Linux 7.0
按照常规步骤安装 RedHat Linux 7.0. 笔者所用平台为 Sony VAIO F160 Laptop,
PII300/64M/6.4G. 安装模式选择 Gnome WorkStation. 系统重要软件版本号如下:
Kernel 2.2.16
gcc 2.96
gcc-c++ 2.96
glibc 2.1.92
XFree86 4.0.1
Gnome 1.2.1
二 控制台中文化
利用 Unicon 3.0 实现控制台的中文化. Unicon 3.0 是 TurboLinux 公司利用
Unicon 技术实现的 Linux 控制台国际化的解决方案. 通过终端帧缓冲方式实现
多字节语种的显示与输入,支持 GB,GBK,BIG5,JIS,KSC 等编码.
可以从 China Linux Forum 或 直接从 TurboLinux 公司的网站下载:
http://www.linuxforum.net/ftp/update/Unicon-3.0-release.tar.gz
ftp://ftp.turbolinux.com.cn/pub/turbolinux/source/Unicon/Unicon-3.0-release.tar.gz
安装 Unicon 3.0 需要修改 Linux 内核. Unicon 3.0 同时提供了 Kernel-2.2.17
和 Kernel-2.4.0-test10 的内核补丁. 笔者选择了稳定内核 Kernel-2.2.17.
最新的内核源代码可以在国内外很多站点得到,或者直接从以下网站下载:
http://www.kernel.org/pub/linux/kernel/v2.2/linux-2.2.17.tar.gz
1. 下载完毕后,将内核源代码包解压缩到 /usr/src 目录中:
# cd /usr/src
# tar zxvf /path/to/your/linux-2.2.17.tar.gz
2. 为内核打上 Unicon 补丁:
# cd /tmp
# tar zxvf /path/to/your/Unicon-3.0-release.tar.gz
# cd /usr/src
# gzip -dc /tmp/Unicon-3.0/kernel-patches/Unicon-kernel-2.2.17-1.patch.gz | patch -p0 -b
3. 编译新内核:
# cd /usr/src/linux
# make mrproper
# make xconfig 启动内核配置程序
在内核配置菜单中以下选项前选择""Y"":
Code maturity level options
+-Prompt for development and/or incomplete code/drivers
Console Driver
+-Support Frame Buffer Devices
+-Unicon Support
+-VESA VGA Graphics Console
为了使 Linux 能够识别 Window 下中文文件名,应当选择核心支持中文
代码页:
Character Driver
+-Native Langruage
+-code 936(GBK)
根据具体情况配置其它选项, 然后 Save configuration and exit.
# make dep
# make bzImage
# make modules
# make modules_install
4. 新内核编译成功后,测试新内核是否运行
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.17
# cp /usr/src/linux/System.map /boot/System.map-2.2.17
编辑 /etc/lilo.conf 文件将新内核的入口添加到引导记录里,并使之生效:
#lilo -vi
使用重新引导系统.
5. 安装 GNU 可移植线程库 pth-1.3.7
下载地址为 ftp://ftp.gnu.org/gnu/pth/pth-1.3.7.tar.gz
# cd /tmp
# tar zxvf /path/to/your/pth-1.3.7.tar.gz
# cd pth-1.3.7
# ./configure --prefix=/usr/local
# make
# make test
# make install
使新的库文件目录生效:
# echo /usr/local/lib >> /etc/ld.so.conf
# ldconfig
6. 安装 Unicon-3.0
虽然 Unicon 3.0 的编译过程很简单,但出于节省编译时间和节省存储空间的目的,可做
少量修改。例如:Unicon 默认编译包含 GB,GBK,BIG5,JIS 和 KSC 编码,而实际使用时,
有些编码却用不上.当然,是否全部编译还得由自己的情况而定.
进入 Unicon-3.0 目录,在 fonts 目录内,修改 Makefile.in 文件内容,将你不需要编
译的字体前加上 # 号. 在 Unicon/Unicon 目录内,需在 ImmHzInput.cpp 和 UniKey.cpp
的头部加入语句 #include . 在 tools 目录内,在 Makefile.in 中,去掉
-V2.7.2.3, 将 CFLAGS 设成 CFLAGS = -O2 -Wall -I.
# cd ..
# ./confugre --prefix=/usr/local
# make
# make install
# make data
# make data-install
7. 现在 Unicon3.0 已经编译并安装完成, 为了在控制台下得到更
好的显示效果, 修改 lilo.conf 文件, 例如
image=/boot/vmlinuz-2.2.17
label=k2217
root=/dev/hda2
read-only
vga=771 //设置控制台的分辨率为800x600*16bit
执行 lilo -v 使 lilo 生效.
重新引导系统.
执行
# insmod unikey
# insmod encode-gb
# loadunimap /usr/lib/Unicon/direct.uni
# Unicon --gb
如果出现了蓝色的输入条,试试 Ctrl+Space 应该可以隐藏输入条, 再试试右面的shift
键,应该可以出现智能拼音输入法提示,至此,已经完成了控制台的中文化.
二 X-Window 中文化
1. 配置中文 Locale
RedHat 7.0 已经安装了支持中文的 Locale 在 /usr/lib/locale/zh_CN 下.
编辑 /etc/sysconfig/i18n 配置文件,修改 LANG=""en_US"" 为 LANG=""zh_CN.GB2312"".
编辑 /usr/lib/gconv/gconv-modules 文件,加入一行
alias GB2312-1980// EUC-CN//
使用 export LC_ALL=zh_CN.gb2312 启用中文 locale 支持.
执行命令 date,看看有无变化? 月日等字还是乱码,但表示 Locale 已经生效了.
# startx 进入X-Window, 应该可以看到""丑丑""的中文了.
为在下一次自动进入中文支持状态,在你的主目录下 .bashrc 文件中加入:
export LANG=zh_CN.gb2312
export LC_ALL=zh_CN.gb2312
2. 安装中文输入服务器 Chinput-3.01
Chinput 是于明检先生开发的一个 X-Window 下支持 XIM 输入协议的中文输入
服务器. 可以直接从其主页下载.
http://go.163.com/~yumingjian
Chinput 3.0 需要 Unicon 2.0 的输入法字典和库文件,可以同时从上址下载.
# cd /usr/local/lib
# tar zxvf /path/to/your/Unicon2_im.tar.gz 将Unicon 2.0 解压缩到此目录
# cd /usr/lib
# ln -s /usr/local/lib/Unicon2 Unicon2 这是 Chinput 默认的 Unicon 2.0 的路径
将 Chinput 3.0 压缩包解压缩
# cd /tmp
# tar zxvf /path/to/your/Chinput_3.0_release.tar.gz
笔者要将其安装到 /usr/local 下, 所以要编辑 Chinput_3.0 目录下的文件
Makefile src/Makefile handwriting/Makefile 中的 /usr/bin
修改为 /usr/local/bin. 当然还应当修改库文件目录,这里我只是做了简单
的链接.
# cd /usr/local/lib
# mkdir ZWinPro
# mkdir dict/gb
# cd /usr/lib
# ln -s /usr/local/lib/ZWinPro ZWinPro
# ln -s /usr/local/dict/gb /usr/dict/gb
# cd /tmp/Chinput-3.0
# make;make install
由于 Chinput 需要 libstdc++-libc6.1-2.so.3,而 RedHat 7.0 的 compat-libstdc++
兼容库中只包含 libstdc++-2-libc6.1-1-2.9.0.so,需要手动建立一个库链接:
# cd /usr/lib
# ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-2.so.3
3 . 配置 /usr/lib/ZWinPro/Chinput.ad 文件:
由于 XFree86 没有自带的 BIG5 码字体,若你不需要输入 BIG5 码字符,
则对 Chinput.ad 做以下调整:
...
chinput.gblocale = zh_CN.gb2312
chinput.big5locale = zh_CN.gb2312
...
chinput.gbfont = -*-*-medium-r-normal--16-*-*-*-c-*-gb2312.1980-0
chinput.big5font = -*-*-medium-r-normal--16-*-*-*-c-*-gb2312.1980-0
注意:在 Chinput.ad 的字体定义中,不能出现空格,这是由于 Chinput 的限制.
在你的主目录中 .bashrc 文件加入一行
export XMODIFIERS=@im=Chinput
并重新登录,使其生效.
4. 启动 X-Window, 打开一个终端, 在命令行输入
# chinput &
如果看到绿色的 [OK] 字样,说明 Chinput 已经工作了.
用鼠标右键点击桌面左上角图标 ""My Homw"", 选择 ""Preference"", 可以看到
一个弹出的属性菜单, 点亮 ""My Home"" 对话框, 再按 Ctrl+Space, 应当看到
Chinput 的智能拼音输入条了, 试试能否包 ""My Home"" 改成中文?
三 应用软件的安装与配置
1. GEdit 的配置
GEdit 本身已经支持 i18n 和 XIM.
在命令行执行
# gedit &
在按 Ctrl+Space, 应该可以直接在 GEdit 中输入中文了!
2 安装 rxvt-2.7.5
首先卸载原有的 X-终端
# rpm -e rxvt
将下载的 rxvt-2.7.5 软件包解压缩,然后编译和安装,
# cd /tmp
# tar zxvf /path/to/your/rxvt-2.7.5.tar.gz
# cd rxvt-2.7.5
# ./configure --enable-everything --enable-languages --with-encoding=gb
# make
# make install
然后编辑你的主目录下 .Xresource 文件, 增加以下几行:
rxvt*foreground: grey
rxvt*background: black
rxvt*multichar_encoding: gb
rxvt*font: 8x16
rxvt*mfont: hanzigb16fs
rxvt*scrollstyle: next
重新启动 X-Window, 在命令行执行
# rxvt &
应该可以使用 Chinput 向其输入中文了!
3. 安装 vim-5.7-6
下载 vim-5.7-6.src.rpm
# rpm -ivh /path/to/your/vim-5.7-6.src.rpm
# cd /usr/src/redhat/SPECS
修改 vim.spec 文件, 在所有的 %configure ...处加上
--enable-multibyte --enable-fontset --enable-xim
# rpm -ba vim.spec 重新 build RPM包.
先删除原有的vim的RPM包
# rpm -e vim-common
# rpm -e vim-minimal
安装新的RPM包.
# cd /usr/src/redhat/RPMS/i386
# rpm -ihv vim*rpm
在你的主目录下的 .Xresource 文件中做如下的修改:
Vim.font: hanzigb16fs,-*-fixed-medium-r-normal--16-*-iso8859-1
Vim.fontSet: hanzigb16fs,-*-fixed-medium-r-normal--16-*-iso8859-1
Vim.fontList: hanzigb16fs
在 .gvimrc 文件中加入
set guifontset=hanzigb16fs,-*-fixed-medium-r-normal--16-*-iso8859-1
在 .vimrc 文件中加入
set fileencoding=prc
重新启动 X-Window, 在命令行执行
# chinput &
# rxvt &
在 rxvt 终端中执行
# gvim &
应该可以输中文了.Chinput的输入条自动在gvim的最下端,加上光标的跟随输入,
真是太棒了!!
4. 安装 Xemacs
下载相关的软件包.
安装前先将xemacs-mule-sumo.tar.gz和xemacs-sumo.tar.gz解压缩到
/usr/local/lib/xemacs 路径下.
# cd /tmp
# tar zxvf /path/to/your/xemacs-21.2.35.tar.gz
# cd xemacs-21.2.35
修改 lisp/mule/mule-init.el 文件中的 (""^zh"" . ""Chinese"")
为 (""^zh"" . ""Chinese-GB"")
# ./configure --with-mule --with-xim=xlib
# make
# make install
重新启动 X-Window, 在命令行执行
# chinput &
# xemacs &
怎么样? Linux 下最棒的文本编辑器,还需要多说甚么呢?
5. 配置 Netscape
RedHat 7.0 安装的是 Netscape 4.75, 其默认设置已经对
中文有一定的支持了,只需在你的主目录下的 .Xresource 文件
中加入下面的几行:
Netscape*versionLocale: zh_CN
Netscape*defaultCharset:gb2312
Netscape*fontList:
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;
-isas-*-*-*-*--14-*-*-*-*-*-*-*:
Netscape*XmTextField.fontList:
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;
-isas-*-*-*-*--14-*-*-*-*-*-*-*:
Netscape*XmText.fontList:
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;
-isas-*-*-*-*--14-*-*-*-*-*-*-*:
Netscape*inputMethod: Chinput
Netscape*preeditType: root
以上配置可以很好地在 Netscape 中显示中文了,在 FORM 中的显示也
很令人满意.最主要的是可以通过 Chinput 向其对话框中输入中文了!!!
四 致谢
感谢马军先生等提供了 Unicon 解决方案.
感谢于明检先生等开发的 Chinput 中文输入服务器.
感谢所有热心和致力于 Linux 国际化和中文化的开发人员和用户.
感谢 China Linux Forum 中文化论坛的各位同好,本文直接和间接得益于
他们的讨论和发表的文章. 仅列若干篇如下:
1. RH7-Unicon3-tiny-HOWTO 作者: Wu Yulun
2. REDHAT7+TrueType+Chinput3.0.1 HOWTO 作者: dircls
3. RedHat7-Chinput3-tiny-HOWTO 作者: Wu Yulun
4. RH7.0+KDE+Chinput3.0-1 作者: hucheng
5. RedHat6.2中文显示与输入详细步骤 作者: moonlight
6. Mandrake7.2中文化 作者: younker
7. Mandrake中文化初探 作者: highsun
8. Mandrake7.1下使用Chinput3.0(v0.02) 作者: sharc
9. RH7 GVim5.7 中文输入 Tiny HOWTO 作者: yihan
10.关于Netscape中文化的问题 作者: Wu Yulun