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

RedHat7.0 中文化实战



         前言

    根据多位玩家在 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
    发布人:Jinux Kingbohr 来自:China Linux Forum