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依序分為︰

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

Distributions只安裝base、kernels、man、ports。安裝完畢後,編輯連線網卡、主機名稱、修改root密碼和hosts(假設主機名稱為pc,網域名稱為my-net.cc)︰

# ee /etc/hosts
::1        pc.my-net.cc
127.0.0.1  pc.my-net.cc
# ee /etc/rc.conf
hostname="pc.my-net.cc"   #主機名稱最好改成xxx.yyy.zzz這種格式,避免有時開機會找不到主機名稱。

重新開機。

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

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

ports-supfile複製到/root/下編輯︰

# 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︰

# csup -g -L 2 /root/ports-supfile

更新ports tree index︰
a.下載索引檔(最快)。

# cd /usr/ports
# make fetchindex

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

# portsdb -Uu

3.安裝xorg和xfce4。
先裝xorg︰

# pkg_add -r xorg

裝完再xfce4︰

# pkg_add -r xfce4

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

# adduser

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

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

# 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中文輸入法︰

# cd /usr/ports/chinese/gcin
# make install clean

編輯.xinitrc

# ee ~/.xinitrc
export XMODIFIERS="@im=gcin"
export GTK_IM_MODULE="gcin"
gcin&
/usr/local/bin/startxfce4

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

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

如果不需要sendmail daemon,加入一行︰

sendmail_enable="NONE"

重新開機,root登入。

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

# Xorg -configure

測試設定檔︰

# Xorg -config /root/xorg.conf.new -retro

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

# cp /root/xorg.conf.new /etc/xorg.conf

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

# startx

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

# ee /usr/local/etc/PolicyKit/PolicyKit.conf
<?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下直接關機或重新開機,加入︰

<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︰

# 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一次

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

繼續執行剛被中斷的工作並自動安裝編譯cairo-1.10.2_1,1
b.用portupgrade升級該軟體。先安裝portupgrade(目前以portmaster -i取代)︰

# 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︰

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

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

# ee /etc/xorg.conf
FontPath  "/usr/local/lib/X11/fonts/TrueType/"

開啟終端機輸入︰

# mkfontdir /usr/local/lib/X11/fonts/TrueType/
# fc-cache -f -v

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

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

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

% whereis scrot
/usr/ports/graphics/scrot
% cd /usr/ports/graphics/scrot
% su
# make install clean

使用方法請參考這裡

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