Product SiteDocumentation Site

章 7. 解決問題與找到相關資訊

7.1. 文件來源
7.1.1. 手冊頁面
7.1.2. info 文件
7.1.3. 特定文件
7.1.4. 網站
7.1.5. 教學文件 (HOWTO)
7.2. 通常步驟
7.2.1. 組態程式
7.2.2. 監控後台進程的工作
7.2.3. 通過郵件列表尋求幫助
7.2.4. 以錯誤報告棘手的問題
對系統管理員來說,最重要的技能是能夠克服任何已知或未知的情況。本章將給一些方法 — 希望 — 能夠定位問題的原因,並解決它。

7.1. 文件來源

還沒弄清楚問題所在前,需先知道該問題涉及的每個程式運作原理。為此,最好的方法是參考程式本身的文件;不過這些文件很多且分散各地,應先知道如何找到它們。

7.1.1. 手冊頁面

手冊頁面,通常文筆緊湊,包括大量必要的資訊。經由命令就能檢視其內容。鍵入 man 手冊頁面 — 手冊頁面就用命令名稱取代。例如,想知道 cp 命令的選項時,從Shell提示符號後鍵入 man cp (見專欄 基本 shell,命令列解譯器) 就可以了。
手冊頁面不僅提供命令列的文件,也可以組態檔案、系統呼叫、C程式庫函數等。有時稱為抵觸。例如,shell 的 read 命令也有同名的 read 系統呼叫。所以,手冊頁面分為若干區塊:
  1. 可從命令列執行的命令;
  2. 系統呼叫 (核心提供的函數);
  3. 程式庫函數 (由系統程式庫提供);
  4. 設備 (在 Unix之類系統下,以檔案形式存在,通常置於 /dev/ 資料夾);
  5. 組態檔 (格式與約定);
  6. 遊戲
  7. 巨集與標準集;
  8. 系統管理命令;
  9. 核心常規。
可以指定查看手冊頁面的特定區塊:檢視 read 系統呼叫的文件時,應鍵入 man 2 read。未指定區塊時,將顯示第一個找到同名的手冊頁面。因此,man shadow 送回 shadow(5) 因為在區塊 1 至 4 都沒有 shadow 的手冊頁面。
當然,不知道命令的名稱時,手冊就沒什麼用。此時需要 apropos 命令,協助搜尋手冊頁面,或其簡短說明。每個手冊頁面都有一行簡要的摘要。apropos 送回手冊頁面鍵詞清單。選擇適當的鍵詞,就能找到命令的名稱。

範例 7.1. 找尋 cp 使用 apropos

$ apropos "copy file"
cp (1)               - copy files and directories
cpio (1)             - copy files to and from archives
gvfs-copy (1)        - Copy files
gvfs-move (1)        - Copy files
hcopy (1)            - copy files from or to an HFS volume
install (1)          - copy files and set attributes
ntfscp (8)           - copy file to an NTFS volume.
man 不是查看手冊頁面的唯一命令,還有 konqueror (用於 KDE) 及 yelp (用於 GNOME) 程式也具有相同功能。還有網頁介面,以 man2html 程式啟用,就能夠以瀏覽器讀取手冊頁面。已安裝此套件的電腦,可使用此 URL:
此工具需要瀏覽器。所以必須先安裝此套件於伺服器內:內網內的所有使用者都可以使用此服務 (包括非 Linux 機器),且不需在每個工作站都設定 HTTP 伺服器。若伺服器允許其他網路近用,需設定該等服務祗限內網使用者。

7.1.2. info 文件

GNU 計畫以 info 格式撰寫大部份程式的手冊;其他的程式手冊也採用 info 文件格式。此格式優點甚多,但檢視此文件的程式 (稱為 info) 有點複雜。建議使用 pinfo 取代之 (來自 pinfo 套件)。
info 文件有層級結構,無參數的 pinfo 檢視,顯示第一層的節點。通常節點名稱等同於命令名稱。
以箭頭為引路很容易在 pinfo 的節點間瀏覽。另外,可以用圖形瀏覽器,更具親程力。還有 konqueroryelp 可用;info2www 也提供網頁介面。
info 系統不支援翻譯功能,不同於 man 頁面系統可以翻譯。info 文件幾乎都是英文。雖然如此,當您詢問 pinfo 程式顯示不存在的 info 頁面時,實際上卻回到 man 的同名 (若存在的話) 頁面,那是可以翻譯的。

7.1.3. 特定文件

每個套件均含本身的文件。即使文件做得最差的程式仍有一個 README 檔案,內容是有趣或重要的資訊。此文件安裝在 /usr/share/doc/套件名稱/ 資料來內 (套件名稱 表示該套件的名稱)。若文件特大,可能沒辦法放在程式的主套件內,可能放在名為 套件名稱-doc 的離線專屬套件。再從主套件建議讀取文件套件。
/usr/share/doc/套件名稱/ 資料夾也包括由 Debian 提供的文件,指明在 Debian 中該套件特別或改進之處。README.Debian 檔案也指出為了相容於 Debian 政策所做的調整。changelog.Debian.gz 檔案允許使用者追蹤套件的修訂:足以瞭解兩個版本之間的變化,就不必做重複的工作。最後,偶而還有 NEWS.Debian.gz 檔案,列出管理者可能有興趣的重要改變。

7.1.4. 網站

大部份的情況下,自由軟體從自己的網站散布軟體並聚集開發者與使用者。這些網站通常包括多種格式的相關資訊:官方文件、答客問、郵寄名單檔案等。可能遇到的問題多半已經回答了;答客問或郵寄名單檔案已有了解決方案。搜尋引擎也可担供快速大量有價值的回答 (限制搜尋的網址或次網址)。若得到太多資訊或不符合需要,可加入鍵詞 debian 以限制搜尋的方向。
若不知道軟體網站的網址,其實有很多方法可以找出來該網址。首先,尋找 Homepage 欄位,應該在該套件的元資料 (apt-cache show 套件名稱)。其次,套件說明裡可能含有程式的官方網站名稱。若沒有列出網址,搜尋 /usr/share/doc/套件名稱/copyright 檔案。Debian 維護者多半在此指出程式原始碼的位置,多半就是要找的網址。到了這個階段還是沒有結果,則應查看自由軟體名錄,諸如自由軟體基金會維護的自由軟體名錄,或使用 Google、DuckDuckGo、Yahoo等搜尋引擎。
也可查閱 Debian 共筆,每個人,即使是單純的訪問者,都可從其瀏覽器提出建議。這是由設計該計畫的發展者與分享知識的文件撰寫者共同合作的共筆。

7.1.5. 教學文件 (HOWTO)

howto是以具體用語一步步地描述,“如何” 完成預期的目標。目標類型極多,但多半是技術性:如,設定 IP Masquerading、組態軟體 RAID、安裝 Samba 伺服器等。通常這些文件試圖解決應用該等技術所碰到的問題。
很多教學文年由 Linux 文件計畫 (LDP) 管理,其網站主持該等文件:
應以保留態度對待這些文件。它們通常都是好幾年前的文件;其資訊多已過時。尤其是翻譯的文件,因為原始文件多半有系統地更新或在出版後就更新。在志工環境與無束縛的情況工作,就是有這種樂趣…