16 安裝好後的微調

安裝的問題就不詳述了,應該書上或 study-area 網站上會有很詳細的說明。值得一提的是您要學的不只是安裝,安裝只是一小步,安裝好後,系統裡頭的種種才是一大步。因此初接觸的話,我是建議不必理會什麼分割法,挪出一個 partition 通通裝進這個 partition 就對了,以後熟悉了再來考慮分裝至不同的 partition。而初次安裝,盡量以 distro 的預設值為優先考慮,等熟悉一點後才來變花樣,裝不起來,豈不是都不必談了!容量而言,以目前的 distro 來說,5 GB 左右應該就很夠用了。

當然,依預設值來安裝,可能會裝了不少不必要用到的套件,暫時先不必去理會,等熟悉系統一點後再來考慮慢慢瘦身,要瘦身並不難,難的是一些相依性及對套件的認識程度,試想想看,有一張磁片就可以帶著跑的 Linux 系統,也有一張 CD 帶著跑的 Linux LiveCD,所以,先不必急於一時,現在的硬碟空間那麼大,應不必擔心空間不夠的問題。

系統微調,這個題目非常大,因為每個人所碰到的軟、硬體都不一樣,而且對美感、習慣的要求也不一致,因此底下所說的僅供參考,是我個人的情形,不是一般的「標準」,每個發行套件及軟體的風格及調校方式都會不一樣,您得先去熟悉他,才能打造出屬於自己的工作環境。請參考圖 2 我的桌面。這裡只說明本機的使用,網路架設方面的微調,請參考第 14 節的網站說明。

Figure: 我的桌面
Image screen

16.1 編譯核心(kernel)的迷思

編譯核心(kernel),幾乎書裡頭都會提到,但目前您是否有必要去編譯 kernel 呢?很值得深思,您真的搞得清楚編譯 kernel 前的一些選項、設定嗎?萬一出了問題(有些可能是潛在問題),那真的是得不償失,kernel 可是整個系統的心臟呀!還是等熟悉一點再來玩編譯 kernel 的遊戲吧!這裡有一篇 kids 翻譯的文章,很值得參考,請先看看,您有沒有必要去重編譯 kernel:

http://linux.ee.tku.edu.tw/~kids/kernel/myth.html

一般 distro 都會把能夠支援的功能盡量編譯成模組的形態,在要使用到的時候再由手動或自動載入模組。因此,一般會碰到編譯 kernel 的時機是:

  1. 剛好 distro 漏編譯了某個要用到的模組。
  2. 由於安全上的考量,必需更新 kernel 請先看看所使用 distro 的網站上是否有編譯好的更新 kernel。
  3. 基於學習 kernel 的相關議題。

一般 kernel 的調整,可以由 lilogrub 的參數列帶參數給 kernel,不一定要重編譯 kernel。至於有什麼參數可以傳給 kernel,可以參考 /usr/src/linux 下的文件說明。

16.2 到底設定檔在哪裡?

要瞭解整個 GNU/Linux 系統運作的機制,最好的方法就是熟悉 /etc16 這個目錄下的各種檔案在做些什麼事情,這等於是系統的管制中心。在這個目錄下的檔案是一些進入系統就要執行的 script 及整個系統的初始設定檔。這些檔案相當多,而且需要 shell script (man bash) 的基礎知識,剛開始看可能會搞得滿面豆花,沒關係,不要急,慢慢來會比較快!:-)

但個人化的設定則可由家目錄的一些 dot files(開頭是英文句點的檔案或目錄)17 來控制。

通常要瞭解影響系統設定的方法就是追蹤設定檔的前後影響,從 /etc 追蹤起,再來就是家目錄。原則上,追蹤的順序通常可以是:

/etc/rc.d/
/etc/inittab
/etc/profile
/etc/bashrc
/etc/profile.d/
~/.bashrc
~/.bash_profile
及 SysV 系的
/etc/sysconfig/
一開機就進入 X 的話,還要再追蹤:
/etc/X11/

16.3 中文環境的設定

先檢查地區性的設定對不對,使用 locale 這個指令。正常的話,至少 LC_CTYPE 這個環境變數是 zh_TW.Big5,這樣至少可以輸入、處理中文。

由於各種 distro 的設定不見得會一樣,因此,您要稍微自行找一下:

/etc/profile
/etc/profile.d/lang.sh
/etc/sysconfig/i18n
~/.i18n

一般 SysV18 系的,例如 Fedora/Mandrake/Debian 會使用 i18n 這個設定。BSD 系的,例如 Slackware 就沒有這樣使用,而是設在 /etc/profile/etc/profile.d/lang.sh 裡頭。如果您還不清楚,那可以把自己要的設定,設在 ~/.bash_profile 裡頭,請參考第 15.1 小節的說明。

當然,目前 KDE/GNOME 環境,有自己的另外設定,會在第 16.4 節裡頭稍微探討。在 console(就是沒進入 X 時所處的環境)下,那會需要 jmcce 等中文模擬終端機,否則語系設在中文,又沒有中文終端機,那就會產生一堆亂碼。

或許有人會看到,有些軟體的表單並不全是中文,這並不表示他們不能顯示中文,目前絕大部份的軟體都已 i18n 化,也就是說他們能夠顯示、輸入中文,但訊息的翻譯則不是軟體作者所能完成的,如果您對翻譯訊息想盡一份心力,那請加入翻譯中文訊息的行列,有空的時候就隨手翻譯幾個訊息檔:

http://kde.linux.org.tw/~acelan/kde-i18n/
http://i18n.linux.org.tw/
訂閱 mailing list:
https://www.linux.org.tw/cgi-bin/mailman/listinfo/zh-l10n
翻譯好的訊息檔就直接寄:
zh-l10n@linux.org.tw
大家隨手分擔一些工作,很快的就能享有完全中文化的環境。畢竟,自由軟體的開發者本身並不一定懂中文,而這些自由軟體作者並不是都有財團在支援,只能靠大家幫忙了,也滿划算的,他們寫程式,我們只是隨手翻譯就行了。:)


16.4 X Window System 環境的設定

這裡有點小複雜,我盡量簡單說明,沒有詳述的部份,請參考:

http://www.x-docs.org/
man X
man Xserver
man XFree86
man xf86config
man xf86cfg
man XF86Config
man xdm
man xinit
man xfs
不過,我不得不承認,這些文件是滿硬的。往後會盡量擇要加入這篇文章內。

這裡暫時分成三段來說明:

16.4.1 Core X/XFree86

如果不是使用 KDE/GNOME 環境的話,那會由 WM 決定設定檔在什麼地方,WM 沒有管到的才是歸 X 本身來管。只要是依 X protocol 寫的 X 應用軟體都會依這個規則找設定檔。

X 的啟動時設定,是在 /etc/X11/XF86Config/etc/X11/XF86Config-4。 應該新版的 XFree86,可以使用 XFree86 -configure 的方式來設定,但並不一定會完滿,有時要去手動修改,尤其是字型的路徑、滑鼠、解析度……等等。

站在應用軟體的立場,一些軟體的特性是受 X 資源(resources)在管制的,這裡所謂的 resource 目前僅探討高階的部份,低階的部份暫時不論。也就是說,是使用者依本身喜好所能夠控制的地方。一般這些資源檔,預設是在:

/usr/X11R6/lib/X11/app-defaults
這個目錄下,有些 distro 則會連結到 /etc/X11/app-defualts。由於這不是三言兩語可以說明清楚,因此底下會以舉例的方式來說明。

這裡以 xterm 的資源檔 XTerm 為例,請大家找出:

/usr/X11R6/lib/X11/app-defaults/XTerm
/usr/X11R6/lib/X11/app-defaults/XTerm-color
來瞧瞧就知道了。沒錯,非常的複雜,但可跟著裡頭的設定去模仿變更。一些設定的項目可以由 man xterm 來得知。

另外,在家目錄的 ~/.Xdefaults 也可以做設定,例如:

XTerm*background: black
XTerm*foreground: grey78
XTerm*font: -misc-fixed-medium-r-normal-*-*-200-*-*-c-*-iso8859-1
這樣一來,以後開啟 xterm 背景就是黑色,前景(就是文字)就會變成灰白色,而字型會去使用 20x10 的字型。當然,在下 xterm 指令時也是可以在參數列來下參數,例如:

xterm -bg black -fg gray78 -fn \
      -misc-fixed-medium-r-normal-*-*-200-*-*-c-*-iso8859-1
這樣也是可以的。

如果一開機就是進 X,那設定檔會由 ~/.Xdefaults 變成 ~/.Xresources,這個要注意一下,有人說去改 ~/.Xdefaults,也意指可能是 ~/.Xresources。當然,有人為了省事,乾脆就兩個連結起來:

ln -s .Xdefaults .Xresources
省得麻煩。

那我如何知道一個新的 X 應用程式的資源檔是哪一個呢?一般會以原程式名,前面的字母變成大寫,如果不確定,可以利用以下的小 sh script 來判斷:

#!/bin/sh
# winprop(window property)
exec xprop | xmessage -file -
存檔成 winprop,改變成可執行檔 chmod +x winprop,再把他移到 /usr/local/bin 即可,直接設定於所使用 WM 的功能表上,選用上會比較方便。執行 winprop 後,會有一個十字形的游標出現,把他點在應用軟體視窗範圍內即可。找到彈出的說明視窗中的 WM_CLASS(STRING) 這個欄位就會有答案。例如,我開的 rxvt 會記載:

WM_CLASS(STRING) = "rxvt", "XTerm"
表示他是受 XTerm 這個資源項(檔)所影響,但 rxvt 這個資源項會優先,因此,如果我的 ~/.Xdefaults 的設定是:

XTerm*background:       black
XTerm*foreground:       grey78
rxvt*foreground:        yellow
那所啟動的 rxvt,背景是黑色(依 XTerm 的設定),但前景則是黃色(被 rxvt 的設定項蓋過去了)。各位去改一改,試一試就知道怎麼一回事了。

有些程式,還有自已獨立的設定檔,例如 gvim,他的設定檔在 ~/.gvimrc,一般會以 rc 為結尾。要注意的是,KDE/GNOME 的應用軟體,不一定會全受 X 資源檔的影響。例如 gvim 的 Gtk+/GNOME/KDE 版本,但 gvim 的其他 GUI 版本則仍受 X resource 的管制。

很顯然的,X 應用程式的設定,困擾了許多人,不僅僅是設定檔置放的地方,而且內容也不那麼簡單,也因此才會有 KDE/GNOME 的整合環境的出現,而 XFree86 也漸漸會朝向簡化設定檔的方向走。但傳統的 X 應用程式就是這樣設定的,所以也需要瞭解一下。

16.4.2 Qt/KDE

由於這些新興的 GUI toolkits 標榜跨平台,及可用於嵌入式系統,因此許多系統上本來可以支援的功能,必需自行處理,以防一旦沒有這些系統共享資源時無法運作。這樣有好處,也有壞處,好處是可跨平台及獨立作業,也可改進原來系統不是很方便的設定方式,壞處就是會多秏額外的系統硬體資源,例如 CPU/RAM 等等,所以這些整合式的 GUI 是很方便,但機器就得高檔一點的了,否則執行起來速度會比較慢。

由於這是整合環境,連設定都整合好了。這裡不做詳細的說明,因為功能表選單叫出來,看一看,試一試就行了,這已經是整合到很方便的程度了。以下只說明最常被問到的問題,「中文」。

中文的問題,只要進入 KDE19 時叫出「控制中心」(KDE Control Center),先找「區域性 & 易用性」(Regional & Accessibility),「國家/地區 & 語言」(Country/Region & Language)這一小項,設成我們的台灣地區就行了,有國旗可以辨識。然後第二步,找「外觀 & 主題」(Appearance & Themes)那一大項,裡頭的「字型」(Fonts)那一小項,選我們的文鼎 PL 字型就成了。如果看起來怪怪的,可以選有 Xft 的那一項字型(要新一點的版本才會有),或調整字型的大小(設成 16),有平滑字(Anti-Alias)功能的話,也把他打開,這樣應該就可以了。

如果發現,通通設定好像亂掉了,那就把家目錄的 ~/.kderc.kde 目錄刪除,再重新進入 KDE 即可,重頭來設定。不過,建議保存成 .kde-bak,再來重進入 KDE 重設定,以免某些辛辛苦苦試出來的 KDE 軟體設定檔,一下子就消失了。

16.4.3 Gtk+/GNOME

GNOME 則還要依賴系統的 locale 設定,設成英文語系,則進入 GNOME 就是英文環境,設成 zh_TW.Big5 則進入後就是中文環境,當然也因為這樣,GNOME 環境會比 KDE 環境,「不慢」一點點。:)

GNOME 環境的設定,並沒有集中在像 KDE 一樣的控制中心,而是分散至 Panel, Programs 的「設定」(Settings)及「系統」(System)裡頭。一樣,也請大家去更改,玩玩看,這應該是不必多加說明。

和 KDE 一樣,想重設的話就把 ~/.gktrc~/.gnome* 這些檔案及目錄改名後,重新進入 GNOME 即可重頭設定。

新一代的 GTK+/GNOME 的設定已有重大改變,集中在 ~/.gnome2 目錄下。在 ~/.bash_profile 也可以做設定:

export GDK_USE_XFT=1 => 使用 AA(平滑字)
export GTK_IM_MODULE=xim => 預設使用 XIM 輸入法,例如 xcin
export G_BROKEN_FILENAMES=1 => 檔名使用 locale 設定的編碼

16.5 FreeType/Xft/FontConfig

由於 X 的字型伺服器非常原始,欠缺對調合字型資訊的應用,這對文字的展示編排(text layout)有相當大的限制,因此會有這些字型相關的函式庫的發展,來突破這些限制。這些函式庫在新一代的 XFree86 可說是耳熟能詳的名詞了,但裡頭到底是什麼內容,有去探究過嗎?在這裡簡單的介紹一下。

16.5.1 FreeType

這裡主要指的是 FreeType Project 中的 FreeType 2。這是新一代的字型引擎(font engine),他的任務是掃描字型檔,然後提供字型裡頭的相關資訊,例如,各種對應表格、字型資料本身、字型描述資訊……等等。但他是底層的函式庫,更高階的運用是由其他的程式或函式庫來引用後才能發揮功能。他的網站在:

http://freetype.sourceforge.net/index2.html

16.5.2 FontConfig

這也是字型函式庫,是建立在 FreeType 之上的函式庫,功能是提供字型安裝、列表、配對。有利用到這個函式庫的程式,那他的字型路徑、配對的設定會在 /etc/fonts 目錄下,這在新一代的 KDE/GNOME 環境及其他有利用到這個函式庫的程式都是這樣找字型的。

16.5.3 Xft

Xft 也是建立在 FreeType 上的字型函式庫,他有在 X 顯示平滑字及讓 LCD 顯示最佳化的功能,這是以往 X 字型伺服器做不到(或很難做到)的功能,和以往的 X 字型伺服器最大的不同是,Xft 是 client 端的字型函式庫。這裡指的是新的 Xft2。

好了,那大家都是字型函式庫,功能從哪裡顯現出來呢?答案就是目前的桌面環境及 WM,例如 KDE/GNOME 都在底層使用了這些函式庫,處理起字型那就方便太多了,現在安裝字型,只要往字型路徑上一丟,執行一下 fc-cache 就可以馬上使用,比起以往基於 XLFD20 標準的設定方式那可真是不可同日而語。

關於 Xft/FontConfig 的中文文件,可參考 EricCheng 所寫相當棒的說明:

http://fractal.csie.org/~eric/fontconfig/

Compiled by Edward G.J. Lee (2004-02-14)