前言
雖然 FreeBSD 不會是大部分使用者日常使用的系統,這裡仍然說明在 FreeBSD 安裝桌面環境的方式。畢竟有桌面環境會比只能用命令列來得方便一些。
安裝 X.org 伺服器
大部分 Unix 的圖形介面環境透過 X Window System (註) 來提供,該軟體並非系統的一部分,而是另行安裝的。使用以下指令安裝 X.org:
(註) 不是 X Windows。
# pkg install xorg
將使用者加入 video 群組:
# pw groupmod video -m user
請將 user 替換成實際的使用者。
輸入以下指令即可進入 X Window:
$ startx
說實在的,X Window 不美觀也不實用:
FreeBSD 的圖形介面環境當然不是只有這樣。除了安裝 X.org 外,還要安裝桌面環境。詳見下文。
選擇桌面環境 (Desktop Environment)
如同大部分 Unix,FreeBSD 有多種桌面環境可用。以下是常見的桌面環境:
- GNOME
- KDE
- Xfce:相對輕量的桌面環境
- Cinnamon:從 GNOME3 分支出來的專案
- MATE:從 GNOME2 分支出來的專案
- LXDE:台灣之光 PCMan 所製作的輕量級桌面環境
- LXQt:將 LXDE 移植到 Qt 上的版本
若系統資源充足的話,通常會選 GNOME 或 KDE。反之,若系統資源受限時,則會選 Xfce 或 LXDE。
Cinnamon 和 MATE 是對 GNOME 3 的 GNOME shell 所做的反動。兩者的差別在於上游的原始碼相異。FreeBSD 的 GNOME 3 提供經典模式,該模式和 GNOME 2 的 GNOME panel 相似。所以,不需要刻意安裝 Cinnamon 或 MATE。
安裝 GNOME
輸入以下指令來安裝完整的 GNOME 3 桌面環境:
# pkg install gnome3
若不想裝那麼多軟體,也可以改裝 gnome-lite
:
# pkg install gnome3-lite
若想用經典模式,還要額外安裝 gnome-menus
才會有程式清單可用:
# pkg install gnome-menus
在 /etc/rc.conf 中加入以下內容:
dbus_enable="YES"
hald_enable="YES"
gnome_enable="YES"
D-Bus 用於行程間溝通,HAL 處理硬體。GNOME、KDE 等桌面環境會用到。像是光碟、UBS 外接硬碟就會用到這些服務。
最後一項則會開啟多項 GNOME 相關服務,包括登入管理員。這樣設置後,下次開機就會直接登入桌面環境,不需再從命令列啟動桌面。
安裝好的 GNOME 經典模式如下:
安裝 Xfce
使用以下指令安裝 Xfce:
# pkg install xfce
由於 Xfce 沒有自己的登入管理員,常見的替代選項是 LightDM。輸入以下指令以安裝 LightDM:
# pkg install lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
LightDM 在功能上和 GDM 相仿,但不會用到 GNOME 的函式庫,僅會用到 GTK,適合在非 GNOME 的桌面環境上使用。
修改 /etc/rc.conf ,加入以下內容:
dbus_enable="YES"
lightdm_enable="YES"
安裝好的 Xfce 畫面如下:
修復 Xfce 無法關機的議題
剛裝好的 Xfce 是無法透過桌面環境關機的。從 xfce4-session 套件的資訊可知:
$ pkg info -D xfce4-session
xfce4-session-4.16.0:
On install:
To be able to shutdown or reboot your system, you'll have to add .rules
files in /usr/local/etc/polkit-1/rules.d directory. Which looks
like this (replace PUTYOURGROUPHERE by your group):
polkit.addRule(function (action, subject) {
if ((action.id == "org.freedesktop.consolekit.system.restart" ||
action.id == "org.freedesktop.consolekit.system.stop")
&& subject.isInGroup("PUTYOURGROUPHERE")) {
return polkit.Result.YES;
}
});
(省略一些訊息)
使用 root
新增 /usr/local/etc/polkit-1/rules.d/shutdown.rules 設定檔,加入以下內容:
polkit.addRule(function (action, subject) {
if ((action.id == "org.freedesktop.consolekit.system.restart" ||
action.id == "org.freedesktop.consolekit.system.stop")
&& subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
之後就可以從 Xfce 關機了。
加入 VirtualBox Guest Additions
若讀者是在 VirtualBox 中安裝 FreeBSD,建議安裝 VirtualBox Guest Additions。會讓桌面環境跑更順,也可以在兩個系統間無縫切換滑鼠游標。
先安裝以下編譯此軟體所需的相依套件:
# pkg install yasm
# pkg install kBuild
# pkg install libxslt
這些相依套件並不是用背的,而是觀察目標套件的 Makefile 而知。預先安裝的目的是省下重新編譯這些相依套件的時間。
編譯安裝目標套件:
# cd /usr/ports/emulators/virtualbox-ose-additions
# make install clean
編輯 /etc/rc.conf ,加入以下內容:
vboxguest_enable="YES"
vboxservice_enable="YES"
重開機後即可自動啟用 VirtualBox Guest Additions。
無法進入桌面環境
若讀者按照本文說明的方式安裝桌面環境,之後都會直接進入桌面環境。但有可能會不小心寫壞個人設定檔,造成無法登入的困境。本節說明如何處理此議題。
在 FreeBSD 的起始頁面按 S
,登入單人模式。在單人模式下,會直接使用 root
。
將系統重新以可讀寫的模式掛載:
# mount -u /
修改 /etc/rc.conf ,將啟動登入管理員那行以 #
註解掉:
#gdm_enable="YES"
然後重新開機,這時候會重回命令列模式。以 root
登入後,直接修改目標使用者有問題的設定檔,像是 /home/user/.profile 。
把有問題的部份修掉後,再修改 /etc/rc.conf ,重啟登入管理員,然後重開系統。順利的話,應該可以登入桌面環境了。
FreeBSD 桌面環境的解析度很低
目前站長也找不到解決的方式。對於同樣的虛擬機器軟體,使用 GNU/Linux 可以達到 1920x1080 的高解析度,但 FreeBSD 僅能達到 1024x768。日後站長找到應對的方式後,會更新此處的內容。