FreeBSD 4.7 Release + Xfree86 4.2.1 + gnome 1.4 + OpenOffice 1.0.1 + Chinput3
(本文中所涉及到的[url=http://www.pccode.net].net" class="wordstyle"源码请参考 [url=http://www.pccode.net].net
/pub/FreeBSD/" target=_blankftp://bsd.starhiway.net
/pub/FreeBSD/ )
经过二十天耐心的资料查询、反复测试,终于可以在FreeBSD上书写文档了,这篇文章就是完全在运行FreeBSD的系统上完成的,请大家与我共同分享使用FreeBSD的乐趣。
1.让XFree86支持TrueType字体,安装SimSun字体
即使不打算使用FreeBSD做文本编辑这样的工作,安装SimSun字体也是非常必要的,XFree86自带的中文字体看起来很不习惯。
随 FreeBSD 4.7 Release 发行的 Xfree86 版本是 4.2.1 ,Xfree86 4.x已经内建支持 TrueType 字体。有两个不同的模块能够起动这个功能:freetype 和xtt。这里使用的是 xtt 模块。在 /etc/X11R6/lib/X11/XF86Config文件中加入:
Load “xtt”
#cd /usr/ports/chinese/ttfm
#make
#make install
为TrueType字体创建一个目录(/usr/X11R6/lib/X11/fonts/TrueType),把windows fonts 目录下的 simsun.ttf 文件拷贝到这个目录。
进行以下步骤:
#cd /usr/X11R6/lib/X11/fonts/TrueType
#ttfm.sh –add xttfm simsun.ttf
如果将simsun.ttf文件存放在其他目录下,执行ttfm.sh会自动创建 /usr/X11R6/lib/X11/fonts/TrueType 目录,并在这个目录下创建符号链接simsun.ttf,指向simsun.ttf的实际存储位置。执行完ttfm.sh后,在 /usr/X11R6/lib/X11/fonts/TrueType目录下创建了fonts.scale,fouts.dir和encodings.dir文件。
在/etc/X11R6/lib/X11/XF86Config文件中加入:
FontPath “/usr/X11R6/lib/X11/fonts/TrueType”
重新起动X-windows,使用 xlsfonts -fn “*gb*” 列出系统中所有中文字体,如果包括有
-misc-simsun-medium-r-normal—0-0-0-0-c-0-gb2312.1980-0 等则表明simsun字体安装完成。然后就可以在Mozilla中欣赏一下漂亮的SimSun字体。
2.设定locale
根据一些资料,FreeBSD系统对中文的locale支持为zh_CN.EUC,而XFree86只支持zh_CN.gbk,www.freebsdchina.org提供了让XFree86支持zh_CN.EUC的方法。根据这个方法
下载Xfree86 4.2.0[url=http://www.pccode.net].net" class="wordstyle"源码,包括X420src-1.tgz,X420src-2.tgz,X420-src3.tgz三个文件和升级到4.2.1的patch包4.2.0-4.2.1-1-freebsd.patch.gz。
(该[url=http://www.pccode.net].net" class="wordstyle"源码可从 [url=http://www.pccode.net].net
/pub/FreeBSD/distfiles/xc/" target=_blankftp://bsd.starhiway.net
/pub/FreeBSD/distfiles/xc/ 下载)
使用 tar 解开压缩包。
使用如下命令将[url=http://www.pccode.net].net" class="wordstyle"源码升级到4.2.1。
gzip -d < 4.2.0-4.2.1-1-freebsd.patch.gz | patch -p0 -E
进入目录xc/nls/XI18N_OBJS,把zh文件复制一个名为zh_CN的文件,然后在这个目录中的Imakefile中加入一行:
XI18NTarget(zh_CN)
回到xc目录,重新编译安装整个X系统。
设定locale为zh_CN.EUC
c shell修改.cshrc 加入:
setenv LC_ALL zh_CN.EUC
setenv LANG zh_CN.EUC
bash修改.profile 加入:
export LC_ALL=zh_CN.EUC
export LANG=zh_CN.EUC
修改 /usr/X11R6/share/gnome/gtkrc.zh_CN
将所有的fontset设置修改为:
fontset = "-misc-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0"
修改 /usr/X11R6/share/themes/gtk/Default/gtkrc.zh_CN 如下:
style "gtk-default-zh-cn" {
fontset = "-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1,-*-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"
重新起动X-win,现在在菜单里应该可以看见中文的菜单了。
3.安装chinput3
从ftp://ftp.freebsdchina.org/pub/china-ports/下载 chinput302final.tgz,tar 解压后,进行编译。
#make
#make data
#make install
#make install-data
这个版本的源代码还有一些错误。主要如下:
src/ZWinControl/text目录下的文件zwincontrol_gb.po中有一个重复定义,删除。
安装时提示/usr/share/locale/zh_TW.Big5/LC_MESSAGES存在,备份后删除再进行安装。
需要将fonts目录下的字体安装到x-win系统中。创建/usr/X11R6/lib/X11/fonts/chgb目录,将fonts目录下的两个文件拷贝到创建的目录下,并在/usr/X11R6/lib/X11/XF86Config配置文件中加入:
FontPath "/usr/X11R6/lib/X11/fonts/chgb/"
在用户目录下的 .xinitrc目录中加入:
export XMODIFIERS=@im=Chinput
chinput
exec gnome-session
这样在x-win执行其他程序之前起动chinput,就可以在mozilla等可以编辑文件的软件中用Ctrl+Space叫出输入法了。
将修正后的chinput3上载在 [url=http://www.pccode.net].net
/pub/FreeBSD/chinput3/" target=_blankftp://bsd.starhiway.net
/pub/FreeBSD/chinput3/ 上。
4.安装openoffice.zh_CN
从ports安装openoffice.zh_CN,编译openoffice需要有足够的硬盘空间(约4G),进入目录/usr/ports/chinese/openoffice.zh_CN/
#cd /usr/ports/chinese/openoffice.zh_CN
#make
由于openoffice倚赖很多其他软件包,ports能够自动下载所需软件包的原文件并进行安装,在他所倚赖的软件包安装完成后,会下载openoffice的源文件并开始编译。但openoffice所依赖的jdk的源代码由于有一些特殊的许可问题,需要手工到相应网站进行下载。openoffice使用了mozilla 1.0.1的源文件,在编译时会出错。将/usr/ports/www/mozilla/ 目录下的所有文件拷贝到/usr/ports/chinese/openoffice.zh_CN/work/mozilla下,再回到/usr/ports/chinese/openoffice.zh_CN下重新make,即可顺利完成编译,编译比较耗时,耐心等待编译完成吧。
完成编译后,make install安装。
然后在 x-win 环境下运行 openoffice, 按照提示一路下一步(Next), 就完成了设置。 注意这时的字体很模糊。
完成了设置后,再次运行openoffice,OK,现在开始修正字体。在菜单工具->选项 里,Openoffice.org->字体替换 选中 使用替换表,在字体里写入 Andale Sans UI,在替换为一栏选择SimSun字体,然后按绿对勾按钮添加。再在前面两个选中框中选中,确定即可。现在菜单的字体完全正常了。
在添加字体替换时,如果你找不到绿对勾按钮。可能是因为你的屏幕分辨率和字体设置问题,导致那个对话框拉的很长。可以通过设置虚拟屏幕的方式,将屏幕扩大,以便能够显示出那个按钮。
在/usr/X11R6/lib/X11/XF86Config文件中,对应的显示模式下加入
Virtual 1600 1200
如:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultColorDepth 16 /* 默认显示颜色深度为16位色 */
SubSection "Display"
Depth 1
EndSubSection
SubSection "Display"
Depth 4
EndSubSection
SubSection "Display"
Depth 8
EndSubSection
SubSection "Display"
Depth 15
EndSubSection
SubSection "Display"
Virtual 1600 1200 /* 设定虚拟屏幕大小为1600 * 1200 */
Depth 16
EndSubSection
SubSection "Display"
Depth 24
EndSubSection
EndSection
附相关配置文件:
/* XF86Config */
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType/"
FontPath "/usr/X11R6/lib/X11/fonts/URW/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
Load "xtt"
Load "dbe"
Load "dri"
Load "extmod"
Load "glx"
Load "pex5"
Load "record"
Load "xie"
Load "xtrap"
Load "speedo"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "MouseSystems"
Option "Device" "/dev/sysmouse"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 31.5 - 79.0
VertRefresh 50.0 - 90.0
EndSection
Section "Device"
### Available Driver options are:-
### Values: : integer, : float, : "True"/"False",
### : "String", : " Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # []
#Option "HWCursor" # []
#Option "SWCursor" # []
#Option "ShadowFB" # []
#Option "Rotate" # []
#Option "UseBIOS" # []
#Option "LCDClock" # #Option "ShadowStatus" # []
#Option "VideoRAM" # Identifier "Card0"
Driver "savage"
VendorName "S3"
BoardName "Savage/IX-MV"
ChipSet "MobileSavage"
BusID "PCI:1:0:0"
EndSection
Section "Screen"