QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 476|回复: 2

RedHat7 中文化实战(转)

[复制链接]
发表于 2003-12-13 12:02:30 | 显示全部楼层 |阅读模式
前言

    根据多位玩家在 China Linux Forum 发表的帖子, 经过两昼夜的反复实践,终于搞定了,提出一套初步的中文化解决方案.本文未有发明,仅以安装过程之经验,供同挤相互印证.

一 安装 RedHat Linux 7.0(对于Unicon可安装在RH6.X中)

    按照常规步骤安装 RedHat Linux 7.0. 笔者所用平台为 Sony VAIO F160 Laptop,PII300/64M/6.4G. 安装模式选择 Gnome WorkStation. 系统重要软件版本号如下:

    Kernel 2.2.16-kernel 2.4.2
    gcc 2.96(冷风注:RH的默认版本就可以)
    gcc-c++ 2.96
    glibc 2.1.92
    XFree86 4.0.1(如果需要使用TTF字体则必须)
    Gnome 1.2.1(建议)

二 控制台中文化

    利用 Unicon 3.0 (目前本站提供3.0.1下载,支持最高版本的核心为2.4.1)实现控制台的中文化. 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
        # make
        # make test
        # make install


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.
(以上紫色的一段在3.0.1版本中不在需要修改)

        # cd ..
        # ./confugre --prefix=/usr
        # 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
发表于 2003-12-13 14:51:20 | 显示全部楼层
回复

使用道具 举报

发表于 2003-12-13 18:03:58 | 显示全部楼层
都哪一年的文章了……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-18 09:48 , Processed in 0.039816 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表