Linux中文化之将RedHat7.0的汉化进行到底(一)

发表于:2007-07-04来源:作者:点击数: 标签:
作者:Bigluo (bigluo@china.com) 一、机器配置 开始之前,我必须先要自报一下爱机的配置:PIII 450 + 128M Ram + 20G HardDisk + Dimond V770 + Dimond S90。整个配置编译过程足足花了我24个小时,其中编译kernel,整个QT+KDE,Unicon Source花足了起码

  作者:Bigluo (bigluo@china.com)
  一、机器配置  
    开始之前,我必须先要自报一下爱机的配置:PIII 450 + 128M Ram + 20G
  HardDisk + Dimond V770 + Dimond S90。整个配置编译过程足足花了我24个小时,其中编译kernel,整个QT+KDE,Unicon Source花足了起码22个小时。所以,各位fans的机器如果还低于这个配置的话,应该想象一下编译这些sources所花的时间了。
  二、关于这篇文章
   我是在自己的机器上成功的汉化了RedHat,但我并不保证凡是看完这篇文章的朋友都能。本文只是一个参考。本文所需要的软件包和补丁,你可以到我的主页http://www.linuxorb.net下载。
  三、汉化后的RedHat是个什么样子?
   采用TurboLinux提供的Unicon 3.0加上内核提供的GBK code page,我们能够得到一个支持中文编码的内核,一个彻底的中文终端,还有Xwindows下中文文件名的支持。
   采用glibc-2.2,我们可以得到更好的中文locale支持。
   采用XFree86 4.01,我们可以得到更多显卡的支持和TrueType字体的支持。
   采用Qt-2.2.2 + codec patch + vim patch能够让KDE比较完美的支持中文显示和中文输入。
   采用KDE-2.01,我们能够得到一个比Win 98还漂亮的桌面环境。
   采用cxterm得到中文的xterm。
  四、RedHat 7.0的中文locale的问题
   RedHat 7.0采用的glibc-2.1.96,对中文的支持已经是很好了。我们仅仅需要修改 /usr/lib/gconv/gconv-modules ,加入一行:
  alias GB2312-1980// EUC-CN//
  把LC_ALL环境变量export为Zh_CN,zh_CN.GB2312,zh_CN.GBK都可以支持简体中文。如果你做了上面的修改,启动到Gnome环境,看看Gnome是不是能够支持中文。最明显的是Gnome桌面的时钟变成中文的了。
  五、重新编译内核
   RedHat 7.0所使用的内核是2.2.16,Unicon 3.0有Kernel 2.2.17和kernel 2.4.0test10的补丁,我使用的是kernel 2.2.16 + kernel 2.2.17-patch。如果你采用kernel 2.4test10 + kernel 2.4test10-patch,最后效果可能会更好一点。安装方法和本文介绍的类似。
  1、下载Unicon-3.0release.tar.gz,并解包。
  # cp unicon-3.0release.tar.gz /tmp
  # tar -zxvf unicon-3.0release.tar.gz
  2、确定安装了kernel-source,若没有,安装上。
  # rpm -Uvh kernel-source*
  3、取出其中相应的kernel patch,并给kernel打补丁。
  #cp /tmp/unicon-3.0/kernel-patch/kernel-2.2.17.patch.gz /usr/src
  #cd /usr/src
  #gunzip kernel-2.2.17.patch.gz
  #patch -p0
  4、编译内核
  #cd /usr/src/linux
  #make mrproper
  #make menuconfig
  Code maturity level options
  +-Prompt for development and/or incomplete code/drivers
  Console Driver
  +-Support Frame Buffer Devices
  +-Unicon Support
  +-VESA VGA Graphics Console
  File system->Native language support
  +-Code page 936(GBK)
  大多数情况下,我们的机器都是以单机方式运行的,所以在编译内核时,我建议是够用就好,比如说USB、SCSI、ISDN这些设备如果你没有的话,就可以不选了,Network driver这一项,大多数情况下,我们也只需要把PCI n2k或者是ISA n2k选上就可以了,其他的可以统统不要。
  #make dep
  #make bzImage
  #make modules
  #make modules_install
  如果没有问题的话, /usr/src/linux/arch/i386/boot/下面会产生一个bzImage,这就是新内核了。
  5、使用新内核开机
  #cp /usr/src/linux/arch/i386/boot/bzImage /boot
  编辑/etc/lilo.conf,加入:
  image=/boot/bzImage
  vga=771
  label=zhLinux
  注意:vga=771,771表示使用帧缓冲模式:256色,800x600分辨率。其它的显示模式参见下表:
  640x480 800x600 1024x768 1280x1024
  256 769 771 773 775
  32K 784 787 790 793
  64K 785 788 791 794
  16M 786 789 792 795
  #lilo
  #reboot
  然后选择新内核开机。
  六、编译安装Unicon 3.0
  1、我不确定unicon 3.0是不是需要pth的支持,反正到时候安装chinput的时候也需要它,就先把它安上再说。前一段时间有网友来信询问编译pth时遇到这样那样的问题,现在终于有了pth的rpm4包。安装pth-1.37-2.i386.rpm:
  #rpm -Uvh pth-1.37-2.i386.rpm
  2、由于 Unicon 包含核心组件,所以要做一下内核的备份。要不然当你以后再编译一些第三方内核模块程序时会出问题的。
  # cd /usr/include
  # mv linux linux.old
  # ln -s /usr/src/linux/include/linux linux
  3、我们还需要一些改动一下Unicon 3.0的原码,因为有些编译记号和头文件的错误。 在 unicon/unicon 目录内,需在 ImmHzInput.cpp 和 UniKey.cpp 的头部加入语句 :
  #include
  在 tools 目录内,在 Makefile.in 中,用 CFLAGS += -V2.96 -I, 替换掉原来的CFLAGS标记。
  4、然后开始编译 Unicon。
  # cd /tmp/Unicon-3.0
  # ./confugre --prefix=/usr/local
  # make
  # make install
  # make data <--这一步需要一些时间
  # make data-install
  5、测试
  # insmod unikey
  # insmod encode-gb
  # loadunimap /usr/local/lib/unicon/direct.uni
  # unicon --gb
  没有问题的话,就可以看到下方的输入条了。
  #export LC_ALL=zh_CN.GBK
  #date
  你应该看到中文日期了吧!
  6、让开机时自动启动Unicon
  修改/etc/rc.d/rc.local,把下面的这段代码加到最后:
  #Start UNICON support
  insmod unikey
  insmod encode-gb
  loadunimap /usr/local/lib/unicon/direct.uni
  /usr/local/bin/unicon --gb
  这样的话,每次开机Unicon都会自动启动了。
  七、使用中文man pages
  1、cman是中国linux谈论推出的一个中文man pages计划,如今已经有它的0.2
  版本了。但是他还是相当的不完整,大家如果想加入这个计划的话,可以到:http://www.cmpp.net看看。
  2、解包
  #cp cman-0.0.2-alpha.tar.gz /tmp
  #tar -zxvf cman-0.0.2-alpha.tar.gz
  3、安装cman
  #cd /tmp/cman
  #./install.sh
  4、重新登陆
  #Ctrl+d
  5、测试cman
  #cman socket
  看看现在的中文socket man page吧。
  
  
  

原文转自:http://www.ltesting.net