Fedora 8 中文字体设置技巧
1、安装 Fedora8
安装过程中需要注意的是:要选择简体中文安装界面,这样中文相关软件(如输入法等)和中文语言包才会被缺省安装。否则等安装完成后再手工安装这些东西将会非常繁琐。
另外,如果你想亲自编译这些软件包,安装系统时,在选择软件包时,要把“软件开发”选上,否则在下面的步骤里你就无法编译 RPM 包了。不过,本文提供了已经编译好的 RPM 包,所以,不想自己编译的朋友也可以不安装开发包。
安装完毕后,第一次引导后的配置系统时,我一般会禁用 SELinux,一则因为这玩意对一般个人桌面系统没啥必要,更重要的是它会给你以后手工安装的一些软件的运行造成麻烦(比如,一些不是用 RPM 包安装的动态库(如 flash 插件等)无法加载,必须使用复杂的 chcon 命令改变相关安全属性后才可以加载)。
下面,就是用 yum 安装所有的官方升级包。建议升级前先修改 /etc/yum.conf 文件(红色行):
[main]
cachedir=/home/joe/fc8/yum
keepcache=1
debuglevel=2......
这样 yum 将不会删除下载回来的 RPM 包,而把它保留在 cachedir 指定的另一个分区的目录里;当你下次重新安装 Fedora 后升级时,就不用重新下载一遍这些文件了。
安装、升级完毕后,我们就要开始对一些软件包进行与中文相关的修改了。下面的操作都必须以 root 用户登录执行。
2、FreeType:激活 bytecode interpreter 和 subpixel rendering
从 Fedora 的官方 FTP (ftp://download.fedora.RedHat.com/)或 HTTP (http://download.fedora.redhat.com/)服务器下载最新的 FreeType 源码包,如 freetype-2.3.5-3.fc8.src.rpm(http://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/source/SRPMS/freetype-2.3.5-3.fc8.src.rpm)。然后重新编译和安装 RPM 包(注意在编译时要加上激活 bytecode interpreter 和 subpixel rendering 的选项):
# rpmbuild --rebuild --with bytecode_interpreter --with subpixel_rendering \ --define='dist .zfc8' freetype-2.3.5-3.fc8.src.rpm
# cd /usr/src/redhat/RPMS/i386
# rpm -Fvh freetype*.rpm
下载:
freetype-2.3.5-3.zfc8.i386.rpm(http://sandajian.googlepages.com/freetype-2.3.5-3.zfc8.i386.rpm)
freetype-devel-2.3.5-3.zfc8.i386.rpm(http://sandajian.googlepages.com/freetype-devel-2.3.5-3.zfc8.i386.rpm)
freetype-demos-2.3.5-3.zfc8.i386.rpm(http://sandajian.googlepages.com/freetype-demos-2.3.5-3.zfc8.i386.rpm)
3、Cairo:点阵字体“伪粗体”(Embolden)算法的优化
从 Fedora 的官方 FTP 或 HTTP 服务器下载最新的 Cairo 源码包,如 cairo-1.4.10-2.fc8.src.rpm(http://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/source/SRPMS/cairo-1.4.10-2.fc8.src.rpm)。下载 sunmoon1997 提供的补丁(http://sandajian.googlepages.com/cairo-1.4.10-fake-bitmap-glyph.patch),这个补丁对特定条件下点阵字体“伪粗体”算法进行了优化。修改 cairo.spec 以包含这个补丁。然后重新编译和安装 RPM 包:
# cd /usr/src/redhat/SPECS# rpmbuild -ba --define='dist .zfc8' cairo.spec
# cd ../RPMS/i386
# rpm -Fvh cairo*.rpm
下载(从源代码编译:rpmbuild --rebuild --define='dist .zfc8' cairo-1.4.10-2.zfc8.src.rpm)(http://sandajian.googlepages.com/cairo-1.4.10-2.zfc8.src.rpm):
cairo-1.4.10-2.zfc8.i386.rpm(http://sandajian.googlepages.com/cairo-1.4.10-2.zfc8.i386.rpm)
cairo-devel-1.4.10-2.zfc8.i386.rpm(http://sandajian.googlepages.com/cairo-devel-1.4.10-2.zfc8.i386.rpm)