位元詩人 [FreeBSD] 系統使用教學:安裝和使用桌面環境

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

雖然 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。日後站長找到應對的方式後,會更新此處的內容。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。