/*
* 版权归PHPSalon.com所有,未经许可,严禁任何形式转载
*
* Author: Justin Wu
*/
相信有不少朋友也都是在虚拟机里安装FreeBSD的,小弟近日也安装了一个,以下是本人的一些安装记录,基本系统的安装过程就不再叙述,只需一步一步来即可,当然先把X Server安装好。本文就详细介绍一下FreeBSD 5.3在VMware Workstation 4.5.2 build 8848下的安装与配置过程。
本文约定:命令行采用黑底白字,而配置文件采用灰底黑字。
本文参考了网上很多的资料,这里就不再一一列出,感谢那些为FreeBSD的发展作出贡献的人们。
预览图(点击看大图):
一、安装VMware Tools
====================
如果读者已经安装过了VMware Tools,那么请先卸载VMware Tools,命令如下:
# /usr/local/bin/vmware-uninstall-tools.pl
安装完之后,按Ctrl + Alt释放鼠标,然后选择VM菜单下的“Install VMware Tools...”,接着再进入到FreeBSD界面执行如下命令:
# mount /cdrom
# cd /cdrom
# cp vmware-tools-distrib.tar.gz /tmp
# umount /cdrom
# cd /tmp
# tar -zxvf vmware-freebsd-tools.tar.gz
# cd vmware-tools-distrib
由于FreeBSD 5.3已使用Xorg来代替XFree86,而VMware 4.5.2使用的还是XFree86的配置文件,所以需要打个补丁,不然的话,在X桌面的最高分辨率始终只有640x480。
打补丁的方法有两种:一种是手工修改vmware-tools-distrib/bin/vmware-config-tools.pl文件,另外一种就是使用本人已做好的vmware-4.5.2-freebsd-5.3.patch(见附录),只要patch上就可以了。
方法一:手工修改vmware-config-tools.pl文件
# cd bin
# ee bin/vmware-config-tools.pl
第2852行
return xserver_bin() . '/XFree86';
改为
return xserver_bin() . '/Xorg';
第3055行
/X.org Foundation/ ? '4.4.0' : '0.0.0';
改为
/Release 6.7/ ? '4.3.0' : '0.0.0';
在第3065行之后增加下面两句:
} elsif (file_name_exist($xconfig_path . '/xorg.conf')) {
$xconfig_file_name = 'xorg.conf';
然后保存退出即可。
方法二:使用patch工具
先下载补丁文件
# fetch http://www.wenhepc.com/justin/freebsd/vmware-4.5.2-freebsd-5.3.patch
然后再使用patch打上补丁
# patch -Np1 -i vmware-4.5.2-freebsd-5.3.patch
打完补丁后,现在就可以开始安装VMware Tools
# ./vmware-install.pl
安装过程中会提示你安装在哪个地方,一般都选默认好了,最后一步是提醒你是否立即执行vmware-config-tools.pl配置,选yes,然后选择一个分辨率(Resolution),800x600或1024x768都可,读者自行决定。
一切都搞定之后,就会在/etc/X11目录下生成一个xorg.conf。
二、更新ports
============
1、安装cvsup
如果还没安装过cvsup,那么请执行以下命令安装:
# cd /usr/ports/net/cvsup
# make install clean
2、然后拷贝ports的配置文件到/etc/ports-supfile
# cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile
# ee /etc/ports-supfile
将其中的# host=CHANGE_THIS.FreeBSD.org一行改为host=cvsup.FreeBSD.org
3、更新ports
# /usr/local/bin/cvsup -g -L 2 /etc/ports-supfile
4、修改/etc/make.conf文件,加入中文支持(题外话:感谢Firefly所做出的贡献),如果不存在则可以参考/etc/defaults/make.conf文件新建一个,该文件主要是编译的时候需要用到。
# echo "WITH_CJK=yes" >> /etc/make.conf
以下为笔者的make.conf文件内容
SUP_UPDATE= yes
SUP= /usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPHOST= cvsup.cn.FreeBSD.org
PORTSUPFILE= /etc/ports-supfile
WITH_CJK= yes
三、安装X桌面
=============
读者可根据自己的喜好选择一种桌面,比如Gnome、KDE、XFCE等等,笔者选择的是XFCE,因为这很小巧,不用花太多时间。
1、安装XFCE4
# cd /usr/ports/x11-wm
# make all install clean
几个小时的等待之后,XFCE就安装好了。
2、修改~/.xinitrc文件,如果不存在,则新建一个,加入下面一句:
# ee ~/.xinitrc
exec startxfce4
3、修改/etc/X11/xorg.conf,注释掉DefaultDepth这一行。
# ee /etc/X11/xorg.conf
四、中文化过程
==============
1、修改/etc/login.conf文件,在第一个default区块的:umask=022:之前插入如下内容:
# ee /etc/login.conf
:lang=zh_CN.GBK: :charset=zh_CN.GBK: :umask=022:
2、修改.cshrc文件,设置环境变量
其中/etc/csh.cshrc是为所有用户公用的,而~/.cshrc是当前用户所用的,读者可任意选择一个文件进行如下的修改
# ee ~/.cshrc
alias ls ls -G
alias mount_msdosfs mount_msdosfs -L zh_CN.GBK #加载MSDOS中文文件名支持
alias mount_cdrom mount_cd9660 -C gbk #加载光驱中文文件名支持
setenv LANG zh_CN.GBK
setenv LC_ALL zh_CN.GBK
3、修改~/.xinitrc文件,在文件开头加入下面两句:
# ee ~/.xinitrc
export LANG = zh_CN.GBK
export LC_CTYPE = zh_CN.GBK
4、安装Fireflyttf字体
# cd /usr/ports/chinese/fireflyttf
# make install clean
5、安装simsun、mingliu和tahoma商业字体(非必需)
这两种字体可在Windows下获取,宋体的文件名为simsun.ttc,新明细体的文件名为mingliu.ttc,tahoma字体有tahoma.ttf、tahomabd.ttf
读者可以通过FTP、临时服务器或其他途径等将这几个Windows系统下的文件拷贝到/usr/X11R6/lib/X11/fonts/TrueType目录,并将.ttc扩展名改为.ttf,如果目录不存在则新建一个。
# cp *.ttf /usr/X11R6/lib/X11/fonts/TrueType/
然后刷新字体CACHE列表
# fc-cache -f -v
6、在用户主目录下建立一个.fonts.conf
# cd ~/
# ee .fonts.conf
文件内容请参考附录,该文件主要解决在X桌面下字体模糊的问题。
或者使用笔者已做好的.fonts.conf文件,命令如下:
# cd ~/
# fetch http://www.wenhepc.com/justin/freebsd/dot.fonts.conf
# mv dot.fonts.conf .fonts.conf
五、安装应用软件
===============
1、安装小企鹅输入法fcitx
# cd /usr/ports/chinese/fcitx
# make install clean
装好之后,再修改~/.xinitrc文件,增加以下两句内容:
# ee ~/.xinitrc
export XMODFIERS="@im=fcitx"
fcitx &
2、安装PDF阅读软件XPDF
# cd /usr/ports/chinese/xpdf
# make install clean
3、安装QQ插件和GAIM
# cd /usr/ports/net/gaim-openq
# make install clean
4、安装MP3播放器
# cd /usr/ports/multimedia/beep-media-player
# make install clean
5、安装媒体播放器
# cd /usr/ports/multimedia/mplayer
# make WITH_GTK2=yes install clean
六、大功告成
============
至此,一个基本的系统就安装完成了,现在所要做的就是logout,再重新login,以使前面的设置都生效。
1、重新登录
# logout
然后输入用户和密码登录
进入桌面执行
# startx
2、如果想使fcitx的字体好看一点,可进入终端修改~/.fcitx/profile和~/.fcitx/config文件
# ee ~/.fcitx/profile
是否GBK=1
# ee ~/.fcitx/config
显示字体=simsun
3、进入X桌面后,修改用户界面,字体改成simsun 10或AR PL New Sung 10,自己选择一个喜欢的吧:)
4、That's all, enjoy it!
七、附录
========
1、vmware-4.5.2-freebsd-5.3.patch文件内容
--- vmware-tools-distrib.orig/bin/vmware-config-tools.pl Fri Jun 11 08:52:59 2004
+++ vmware-tools-distrib/bin/vmware-config-tools.pl Fri Dec 17 16:37:04 2004
@@ -2849,7 +2849,7 @@
}
sub xserver4 {
- return xserver_bin() . '/XFree86';
+ return xserver_bin() . '/Xorg';
}
sub xserver3 {
@@ -3052,7 +3052,7 @@
# string. Maybe it will once it settles down.
if ($xversionAll eq "0.0.0") {
$xversionAll = direct_command(shell_string(xserver4()) . ' -version 2>&1') =~
- /X.org Foundation/ ? '4.4.0' : '0.0.0';
+ /Release 6.7/ ? '4.3.0' : '0.0.0';
}
# This search order is issued from the XF86Config man page.
@@ -3063,6 +3063,8 @@
file_name_exist('/usr/X11R6/etc/X11/' . $ENV{'XF86CONFIG'})) {
$xconfig_path = '/usr/X11R6/etc/X11';
$xconfig_file_name = $ENV{'XF86CONFIG'};
+ } elsif (file_name_exist($xconfig_path . '/xorg.conf')) {
+ $xconfig_file_name = 'xorg.conf';
} elsif (file_name_exist($xconfig_path . '/XF86Config-4')) {
$xconfig_file_name = 'XF86Config-4';
} elsif (file_name_exist($xconfig_path . '/XF86Config')) {
2、.fonts.conf文件内容
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- for simsun.ttc -->
<match target="font">
<test name="family"><string>SimSun</string></test>
<edit name="antialias"><bool>true</bool></edit>
<edit name="hinting"><bool>true</bool></edit>
<edit name="autohint"><bool>false</bool></edit>
</match>
<match target="font">
<test name="family"><string>NSimSun</string></test>
<edit name="antialias"><bool>true</bool></edit>
<edit name="hinting"><bool>true</bool></edit>
<edit name="autohint"><bool>false</bool></edit>
</match>
<match target="font">
<test name="family"><string>SimSun</string></test>
<test name="size" compare="less_eq"><int>16</int></test>
<edit name="antialias" mode="assign"><bool>false</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
</match>
<match target="font">
<test name="family"><string>NSimSun</string></test>
<test name="size" compare="less_eq"><int>16</int></test>
<edit name="antialias" mode="assign"><bool>false</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
</match>
<match target="font">
<test name="family"><string>NSimSun</string></test>
<edit name="globaladvance"><bool>false</bool></edit>
</match>
<!-- for mingliu.ttc -->
<match target="font">
<test name="family"><string>MingLiU</string></test>
<edit name="antialias"><bool>true</bool></edit>
<edit name="hinting"><bool>true</bool></edit>
<edit name="autohint"><bool>false</bool></edit>
</match>
<match target="font">
<test name="family"><string>MingLiU</string></test>
<test name="size" compare="less_eq"><int>12</int></test>
<edit name="antialias" mode="assign"><bool>false</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
</match>
</fontconfig>