距離上一次寫 FreeBSD 操作實務已歷時四年,爾後系統穩定,就沒有再研究新的系統怎麼做。
然而十分快的 FreeBSD 12.3 也進入了延伸支援期間,就以 FreeBSD 每個大版本約六年的支援期間,我仍然可以撐到 12.4 再決定要不要更新。然而 FreeBSD 13 將 ARM64 架構提升到了第一級支援陣線。這讓 FreeBSD 13 從 "可以在 ARM64 上執行" 變成 "可以在 ARM64 上效力"。工具與軟體充足程度已接近 x86 版本。讓近期新進的 ARM64 伺服器執行 FreeBSD,我能夠有足夠的信心。故開始著手少量升級部分伺服器到 FreeBSD 13,看看執行結果。
軟體與工具的來去無可避免
就 "使用哲學"、"系統架構" 甚至到 "類別函示庫的擺放" 等的一致性,FreeBSD 是做得相當的好,從接觸 FreeBSD 6 到現在的 FreeBSD 13,我都還能駕輕就熟地知道什麼東西要去哪裡設定。
雖然就使用上 FreeBSD 13 也一如既往般的相同,基本上設定這些與 12 幾乎毫無差異。但軟體與工具會隨著原作者不維護,或者是授權改變,導致往後的版本無法使用。而在設定 XRDP 中,一個重要的函示庫 x11rdp 已從 "支援期間" 變為 "棄用"。這導致之前的方法到最後一步時反而無法設定,一透過 RDP 連線進入後,反而會出現無法啟動 X-Window 的問題...
雖然網路上的資料很少,但 Struggle 了一陣子之後,發現其實也不難: 就把 x11rdp 改為 xorgxrdp 就可以了...
不過為了閱讀方便,我還是會把與之前重複的步驟貼過來,增加閱讀便利。如果不知道我之前寫了什麼的:
動手之前
在動手之前,請注意一下自身系統的狀況。有些步驟需要更改為你的系統適用的作法。在我們要 Demo 的系統:
- FreeBSD 13 安裝完成 (只有 base / lib)
- 只有 root 帳號,其他帳號還沒有建立
- pkg 套件管理程式尚未安裝
不會安裝 FreeBSD 13 ,或者是只是想要嘗試 FreeBSD 是什麼的人:
- FreeBSD 13 安裝實錄
- 使用已整合桌面環境的 FreeBSD 發行版 (例如 GhostBSD)
- 請花時間了解 -nix 系統是什麼
- 請花時間了解 -nix 系統可以為你做什麼
- 請花時間了解基本的 -nix 系統操作與系統概念
若不想花時間了解的人,那去 YouTube 看看影片就好了。
為什麼使用 Mate:
對於剛使用 -nix 類系統 (不包含 MacOS) 的使用者也許無法想像桌面軟體是可以自己選擇的。但這與許多現在的 -nix 類系統為了更友善而預設了使用介面有關。就 -nix 類系統的設計而言,任何與作業系統互動的介面都是 "可選",而非 "絕對"。就文字介面的選擇不僅僅只有 sh,還有 BusyBox / Bash / Csh / Fish .... 等等。嵌入式系統的 -nix 系統有些就直接取消了互動介面。
簡言之,-nix 類系統是一個任君自由調整,想讓它是怎麼樣,它就可以長得什麼樣。FreeBSD 便是一個這樣的系統 - 最基本的操作介面交給你,爾後想怎麼搞,想怎麼做,責任在你。
而為什麼會選擇使用 Mate... 除了是因為繼承了長達十多年的 Gnome 2 介面與操作概念,主要是因為在於中文翻譯的程度。目前為止,Mate 介面的繁體中文翻譯十分的完整。Gnome 3 只有日期顯示翻譯為繁體中文,KDE 4 則仍只有翻譯部分,XFree86 則是什麼都沒翻譯。
雖然 FreeBSD 上有繁體中文翻譯的軟體並不多,但至少桌面軟體是全中文的,仍可節省下不少麻煩。
FreeBSD 13.1 的 Mate 1.26
2005 年 Ubuntu 5.10 的 Gnome 2.10 介面
我不喜歡這些軟體與選擇,用其他的可以嗎 ?
當然可以,不過請自己多花點時間 Google 或使用 FreeBSD 文件。有些做法也許你可以拿去使用。但有些會因為軟體不同而失效。
在這個章節裡,我們要做到
在開始之前,請注意 Command 的符號:
#: 這個指令是在 root 帳戶中執行的
$: 這個指令是在一般權限下執行的
我們在這個章節裡:
- 安裝基本工具與基礎調整
- 設定繁體中文環境
- 建立使用者
- 安裝與設定 Mate 桌面環境
- 設定中文輸入法 (fcitx)
- 設定遠端桌面連線伺服器
安裝基本工具與基礎調整
剛安裝好的 FreeBSD 系統十分的乾淨,是連預設的套件管理程式 pkg 都沒有安裝。但為了方便使用,第一次執行 pkg 時,系統就會自動詢問是否需要安裝:
# pkg
請按下 y 進行安裝
由於 FreeBSD 預設的編輯軟體是 vi,這對於不諳命令列式編輯器的人(例如PE2 PE3 漢書中文處理系統等) 使用不是一件容易的事情。所以我們改用nano:
# pkg install nano
所有操作都可透過Ctrl + (Key)完成,使用上容易許多,建議安裝,方便後續操作。
設定繁體中文環境
FreeBSD 除了鍵盤設定會有語言之差,系統本身並沒有預設的「顯示語言」。使用者必須自行設定語言環境。為了讓未來新增使用者時,不需要一而再再而三的個別設定中文環境,我們會把繁體中文的各項語言設定歸類到一個 Class,爾後所有帳戶建立時,得參考該 Class。
欲編輯 Class 定義:
# nano /etc/login.conf
拉到最後面,複製以下的資料,並貼上
tchinese|Traditional Chinese Users Accounts:\
:charset=UTF-8:\
:lang=zh_TW.UTF-8:\
:tc=default:
編輯後按下Ctrl + O (Write Out)儲存,再按下Ctrl + X 關閉。
為了讓設定能夠生效,執行:
# cap_mkdb /etc/login.conf
爾後讓新增使用者時,系統會自動套用 tchinese (剛剛我們設定的繁體中文)
# nano /etc/adduser.conf
並在檔案中輸入:
defaultclass=tchinese
如果您在這之前已經設定了其他使用者帳戶:
在設定 defaultclass=tchinese 之前建立的使用者,會使用預設的 class (default),而不是我們所指定的 tchinese。
若要變更:
# setenv EDITOR nano
# chpass "要變更的使用者名稱"
找到 Class,改為 tchinese,完成後按下Ctrl + O (Write Out)儲存,再按下Ctrl + X 關閉。
建立使用者
一般情況之下,多數的桌面軟體都不建議以root權限使用,遠端ssh更預設直接拒絕root登入,故建議建立另外的使用者
# adduser
接著請依照提示輸入資訊,不過有幾項要注意的事情:
當系統詢問是否要邀請使用者進入其他使用者群組時(Invite to other groups),請輸入wheel。wheel 屬於FreeBSD系統中有權限使用su指令(進入root權限) 的使用者群組,沒有加入wheel群組的使用者,使用su指令都會被拒絕。
如果這個使用者不需要管理系統的權限 (e.g., 安裝軟體) 則請將 (Invite to other groups) 空白
安裝與設定 Mate 桌面環境
FreeBSD 與其他 -nix 系統一樣,使用者介面都是可選。所以如果需要使用視窗介面,那就必須要另外安裝。
# pkg install xorg mate slim slim-freebsd-black-theme noto
先簡單說明一下安裝的套件
- xorg : X11 視窗伺服系統
- mate : Mate 桌面套件
- noto : Google Notofu 東亞自型補完集
- slim : slim 圖形化登入介面
- slim-freebsd-black theme : slim 圖形化登入介面佈景主題 - FreeBSD 黑 (可選)
接著必須啟用相對應的服務,Mate 介面運作才能正常 # sysrc dbus_enable=YES hald_enable=YES slim_enable=YES
接下來為更改登入畫面的佈景主題 (這個請按照自己的喜好決定要不要做)
# nano /usr/local/etc/slim.conf
找到 current_theme default,並改為
current_theme slim-freebsd-black-theme
指定每個帳戶都以 Mate 桌面環境啟動:
請先不要急著重新開機 :
很可惜的,Mate 桌面環境唯一的缺點是,它沒有自己的登入介面管理員,所以我們才需要額外安裝 SLiM 充當之。但 SLiM 畢竟只是登入畫面,登入後則會直接執行 [使用者家目錄中的 .xinitrc] 檔案的內容,如果沒有這個檔案,則會出現無法執行登入指令的畫面
很可惜的,除了一個一個要求使用者設定其家目錄中的 .xinitrc 檔案,沒有一個完美的解
請登出 root,登入要使用 Mate 桌面的使用者,並執行:
$ nano ~/.xinitrc
並輸入
exec mate-session
如果沒有做這一步,很猴急地重新開機,會被卡在登入介面我卡在登入介面,怎麼辦 ?
不要緊張,試著按下 Ctrl + Alt + F2 ~ F7,這時候系統會依序叫出 tty2 ~ tty7,因為 X-Window 只會占用一個 TTY。進入文字介面後,設定每個帳戶的 .xinitrc
如果一切設定正確,則會看到以下的登入介面,且系統也能正常登入:
設定中文輸入法 (fcitx)
很可惜的,正如前面所述,FreeBSD 並不像多數 Linux 發行版一樣,十分強調開箱體驗。處理輸入法也十分的麻煩。由於本人喜歡使用 fcitx 勝過用 ibus。所以這裡介紹如何設定 fcitx。
開啟「應用程式」-> 「系統工具」->「Mate 終端機」開啟終端機:
$ su
# pkg install zh-fcitx zh-fcitx-chewing zh-fcitx-configtool zh-fcitx-table-extra
# exit
$ exit
十分可惜的是,FreeBSD 並不向 Linux 有簡單的 im-switch 或輸入法框架可以直接一個指令解決一切。FreeBSD 需要透過環境參數指定輸入法:
然而剛才的 xinitrc 是不得已才一個一個設定,環境參數我們仍然可以借用登入 Class 來達成使用該 Class 的人都能被設定這個參數:
$ su
# pluma /etc/login.conf
在tchinese 的 :tc=default: 之前加入以下資訊
:setenv=GTK_IM_MODULE=fcitx:\
:setenv=GTK3_IM_MODULE=fcitx:\
:xmodifiers="@im=fcitx":\
修改完成後,記得
# cap_mkdb /etc/login.conf
但修改 login.conf 只影響文字模式環境的輸入法,而 X-Windows 環境... 你猜對了...
必須又要一個一個帳號修改 .xinitrc:
接著登入要使用輸入法的帳號,打開終端機,在這些帳號執行以下指令:
$ pluma ~/.xinitrc
在 exec mate-session 前面加入:
export XMODIFIERS='@im=fcitx'
export GTK_IM_MODULE=fcitx
export GTK3_IM_MODULE=fcitx
接著每個帳號要把輸入法啟動器,複製到自動啟動資料夾中:
$ mkdir ~/.config/autostart
$ cp /usr/local/share/applications/fcitx.desktop ~/.config/autostart/
重新開機後,就可以看到右上角的輸入法圖示。
如果你已經設定到這裡,恭喜你,中文化環境設定已經完成了
設定遠端桌面連線伺服器
其實跟之前 FreeBSD 12 版的操作很相像,但軟體跟部分設定需要更換
$ su
# pkg install xrdp xorgxrdp
接著,必須將 xrdp 相關的服務設定為啟動:
$ su
# sysrc xrdp_enable=YES xrdp_sesman_enable=YES
再來,必須告訴 xrdp 要啟動的桌面環境:
$ su
# pluma /usr/local/etc/xrdp/startwm.sh
相較於以前的 xrdp,新版的 startwm.sh 寫的是相當簡潔乾淨。
在 #### set environment variables here if you want 下面,更改為:
export LANG=zh_TW.UTF-8
export XMODIFIERS='@im=fcitx'
export GTK_IM_MODULE=fcitx
export GTK3_IM_MODULE=fcitx
而在 #### start desktop environment
除了 exec mate-session 前面的 # 字號是刪除的
其他一律加上 # 字號
完成後重新開機。
測試遠端桌面連線:
接著就可以使用 Windows 的遠端桌面連線程式,連線到 FreeBSD 之中
如果遠端連線都能正常,那恭喜你,全部都已完工 !
留言
張貼留言