当前位置:Linux教程 - RedHat - RedHat7 中文化实战

RedHat7 中文化实战

前言

根据多位玩家在 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