FreeBSD安裝Xfce4基本桌面環境

以我的另一台電腦硬體安裝FreeBSD 8.2-RELEASE,因為硬體較老舊,跑GNOME2或KDE4有點耗資源,且都會預設安裝一堆使用不到的軟體(不過對新手或懶人來說是一個好選擇),所以不列入考慮。原本打算安裝沒安裝使用過的IceWM(因為系統需求非常低),裝完之後一切空空如也,只有四個虛擬桌面、空的程式選單、終端機就沒了,沒有檔案管理員,連選單都要自己想辦法編輯,實在太麻煩了,最後決定使用Xfce4。

安裝電腦的硬體配備︰CPU為AMD Athlon XP 1700+;主機板為ASUS A7N8X Deluxe;記憶體為DDR2 400 512MB x2;顯示卡為ELSA ATi 9550 128M;燒錄機為Pioneer DVR-A07;硬碟為WDC 2.5吋40GB;其他都是主機板內建。

安裝步驟︰
1.先安裝FreeBSD(自訂安裝),硬碟容量不大,只分一個Slice全都給FreeBSD使用,Disk Label依序分為︰

1
2
3
4
5
6
/ > 1GB
/swap > 1GB
/tmp > 2GB
/var > 2GB
/usr > 15GB
/home > 剩餘容量(約16GB)

Distributions只安裝base、kernels、man、ports。安裝完畢後,編輯連線網卡、主機名稱、修改root密碼和hosts(假設主機名稱為pc,網域名稱為my-net.cc)︰
1
2
3
# ee /etc/hosts
::1 pc.my-net.cc
127.0.0.1 pc.my-net.cc
1
2
# ee /etc/rc.conf
hostname="pc.my-net.cc" #主機名稱最好改成xxx.yyy.zzz這種格式,避免有時開機會找不到主機名稱。

重新開機。

2.更新ports tree。
先調整時區和對時︰

1
2
# tzsetup /usr/share/zoneinfo/Asia/Taipei
# ntpdate time.stdtime.gov.tw

ports-supfile複製到/root/下編輯︰
1
2
# cp /usr/share/examples/cvsup/ports-supfile /root/
# ee /root/ports-supfile

*default host=CHANGE_THIS.FreeBSD.org改為*default host=cvsup.tw.FreeBSD.org
開始更新所有的ports tree︰
1
# csup -g -L 2 /root/ports-supfile

更新ports tree index︰
a.下載索引檔(最快)。
1
2
# cd /usr/ports
# make fetchindex

b.從更新後的ports tree產生索引檔(超慢,非常不建議)。
1
# portsdb -Uu

3.安裝xorg和xfce4。
先裝xorg︰
1
# pkg_add -r xorg

裝完再xfce4︰
1
# pkg_add -r xfce4

在此不使用ports安裝,因為CPU不夠力,編譯要花超過10個小時以上,package大約只要40分鐘安裝完畢。
新增一個帳號︰
1
# adduser

加入到wheel群組,Shell使用tcsh。

4.設定所有使用者環境為中文zh_TW.UTF-8

1
2
3
4
5
# ee /etc/csh.cshrc
setenv LC_ALL zh_TW.UTF-8
setenv LANG zh_TW.UTF-8
setenv LC_CTYPE zh_TW.UTF-8
setenv MM_CHARSET utf-8

安裝gcin中文輸入法︰
1
2
# cd /usr/ports/chinese/gcin
# make install clean

編輯.xinitrc
1
2
3
4
5
# ee ~/.xinitrc
export XMODIFIERS="@im=gcin"
export GTK_IM_MODULE="gcin"
gcin&
/usr/local/bin/startxfce4

編輯rc.conf,加入以下兩行︰

1
2
3
# ee /etc/rc.conf
hald_enable="YES"
dbus_enable="YES"

如果不需要sendmail daemon,加入一行︰
1
sendmail_enable="NONE"

重新開機,root登入。

建立xorg.conf組態設定檔(依照FreeBSD Handbook說的,xorg 7.3版起可以不用設定xorg.conf)︰

1
# Xorg -configure

測試設定檔︰
1
# Xorg -config /root/xorg.conf.new -retro

退出測試請按請按Ctrl + Alt + F1(Ctrl + Alt + Backspace在xorg 7.4版本開始,預設disable,要設定),再按Ctrl + C。
測試沒問題,把設定檔複製到/etc/下︰
1
# cp /root/xorg.conf.new /etc/xorg.conf

重新開機,root登入,進入xfce4桌面︰

1
# startx

5.讓其他帳號可以在xfce4下掛載USB裝置(請參考這裡)︰

1
# ee /usr/local/etc/PolicyKit/PolicyKit.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">
<!-- See the manual page PolicyKit.conf(5) for file format -->
<config version="0.1">
<match user="root">
<return result="yes"/>
</match>
<define_admin_auth group="wheel"/>
<match action="org.freedesktop.hal.storage.mount-removable">
<match user="dice">
<return result="yes"/>
</match>
</match>
<match action="org.freedesktop.hal.storage.mount-fixed">
<match user="dice">
<return result="yes"/>
</match>
</match>
<match action="org.freedesktop.hal.storage.eject">
<match user="dice">
<return result="yes"/>
</match>
</match>
</config>

將match user改成指定的帳號名稱,如果要讓使用者都可以使用USB裝置(不知道CD-ROM的HAL名稱,幾乎不會用到,不想找),將︰<match user="dice">和對應的</match>都刪除。
同上,要讓使用者都可以在xfce4下直接關機或重新開機,加入︰
1
2
3
4
5
6
<match action="org.freedesktop.hal.power-management.shutdown">
<return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.reboot">
<return result="yes"/>
</match>

另外suspend和hibernate試加入過無效,應該是本身某些參數未開啟或其他因素,幾乎不會用到,也懶得查原因了。

6.安裝Firefox瀏覽器,因為火狐的package都是3.6,要裝6.0版只能花時間用ports編譯安裝(大約3小時)。
開始安裝Firefox︰

1
2
# cd /usr/ports/www/firefox
# make install clean

編譯時可能會遇到某些軟體需要更新,而被強制中斷,例如cairo-1.10.0_3,1要求更新到cairo-1.10.2_1,1,此時有兩種做法︰
a.直接用pkg_delete -f強制刪除該軟體,火狐再make install clean一次

1
2
# pkg_delete -f cairo-1.10.0_3,1
# make install clean

繼續執行剛被中斷的工作並自動安裝編譯cairo-1.10.2_1,1
b.用portupgrade升級該軟體。先安裝portupgrade(目前以portmaster -i取代)︰
1
2
3
4
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean
# rehash
# portupgrade cairo

最後火狐再make install clean一次。
當然還有其他方法,其實都大同小異,例如到cairo portsmake deinstall再繼續把火狐make install clean;或是pkg_deinstall -r cairo(pkg_deinstall or pkg_delete),請自行依情況執行。

安裝firefox中文語系和Quick Locale Switcher︰

1
2
# cd /usr/ports/www/firefox-i18n
# make install clean

7.安裝Mac LiHei PRO字型(也可依照內文設定,個人強烈建議安裝iLiHei)。把字型複製到/usr/local/lib/X11/fonts/TrueType/(請自行建立TrueType資料夾),屬性全部設為唯讀。
編輯xorg.conf,並加入一行字型路徑設定︰
1
2
# ee /etc/xorg.conf
FontPath "/usr/local/lib/X11/fonts/TrueType/"

開啟終端機輸入︰
1
2
# mkfontdir /usr/local/lib/X11/fonts/TrueType/
# fc-cache -f -v

如果火狐瀏覽器英文字型顯示很醜︰
font_1

請打開編輯 > 偏好設定 > 內容 > 字型與色彩 > 進階 > 優先使用網頁指定的字型 > 取消選取,顯示會變成︰
font_2

8.如果需要抓圖軟體,推薦scrot。

1
2
3
4
5
% whereis scrot
/usr/ports/graphics/scrot
% cd /usr/ports/graphics/scrot
% su
# make install clean

使用方法請參考這裡

最後請用一般帳號登入,編輯.xinitrc,才能正常進入桌面。其他軟體請依自己的需求安裝,安裝軟體前後請記得做pkgdb -F,定時做portsclean。安裝完成的Xfce4中文桌面︰
xfce4