B.1 安裝X的提示
.盡快地獲得所有文件的拷貝,理想的狀況是在開始安裝系統之前(你可
以自行將磁帶上所包含的檔案列印出來,或是由附錄E所列的供應商訂
購一份。)
.首先,對已有的建構檔案盡量少做更動,如果你是第一次安裝X,我們
強力推薦你使用預設的目錄來安裝那些系統的各個不同的部份,只有在
有確實需要更動目錄名稱時,才考慮重新安裝。(如果你不如此做,當
有些問題發生時,你將無法知道,它真的是一個問題或你只是安裝時犯
了一個小錯誤而已)
.如果你是用這次發行的版本建立一個標準的系統,你幾乎不需要做任何
更動便可完成安裝 -- 建構檔已正確地被設定。(本版發行的備忘錄對
此有一點誤導,你可能會得到一個錯誤的印象,以為不論你使用什麼系
統,均需作大量的更動。)
.當你開始安裝,對大多數的系統而言,你不需明確指定系統的型態,它
的建立是根據C語言的前處理器(preprocessor)來定義系統名稱而自動
找到。
.在你熟悉core版之前不要安裝contrib 軟體,因為它安裝費時,且易產
生問題,當你熟悉系統之後,你可能總會修改一些建構參數。
.如果你真的需要使用不同預設值的建構,閱讀文件
$TOP/util/imake.includes/README 可得到關於如何更動的資訊。(它
也對工具程式imake 給了一個概觀,imake 是一般Unix系統中make的前
端(front_end) ,用以建立系統)。
B.2 建立本發行版
在本次發行的軟體分為兩類:一部份核心軟體由X協會標準所提供,另一
部份則任何人都有可能提供,要使得核心軟體這一部份能在大多數的地方重新
建構、建立和安裝需極大的努力,而那些使用者貢獻的部份,也就是說,未經
X協會標準編譯和測試的部份只能自行逐一建立,在util/scripts中的ximake.sh
可能對從Imakefiles到建立Makefiles 非常有用。
幾乎所有在核心軟體中的makefiles 均自動地由名叫imake 的公用程式所
產生,所有的Makefiles 初始版本均包含了在哪些地方不能使用imake (無疑
地,在特定的機器上需要修正)。在許多系統,X必需以正確的磁帶方能建立。
無論如何,它可以藉簡單的設定目錄util/imake.includes/中的檔案site.def
和*.macros中之參數,來重新建構。
B.2.1 安裝摘要
欲載入(load)和安裝此次發行的X Window System你將需要:
1. 讀完本次發行的備忘錄。
2. 建一個你讀入磁帶的目錄(通常名稱類似/usr/local/src/X或/src/R31)
你將需要大約30 megabytes給核心軟體,和超過80 megabytes給使用
者貢獻軟體。
3. 從步驟2 卸下核心軟體磁帶,既然使用者貢獻軟體必須自行建立,你
可以等到以後載入,每一卷磁帶含有一個非常大的Unix的tar 檔案,
以每英□1600位元方式儲存。
4. 閱讀檔案util/imake.includes/README以了解如何建構你的特定X系
統。同樣地,確定你依照目錄server/ddx/ 中README檔案來計畫建造
你的server。
5. 如果你計畫在一部以上的機器編譯這個版本並且要有一個分類檔案系
統,你可能希望依照util/scripts/lndir.sh 的說明來建立符號連接
樹在每一個目的機器,它允許所有的機器如你所希望的使用X而分享
一組原始程式,在這種情況下,build tree這個名詞被用來當作你編
譯目錄樹的參考(和含有實際檔案的source tree 有所區別)。
6. 如果你是在A/UX 1.0下建立在 Macintosh之上,確定你是自目錄
server/ddx/macII執行R3 setup.sh 。它從util/cpp中的公益(public
domain) 原始碼建立一個C的前處理器,和修正一些放錯位置的系統
檔案。如果你是在一部SUN 上,確定你在檔案
util/imake.includes/Sun.macros的頂端設定了四個OS的參數。如此
作可防止在不同的SunOS 編譯器下的錯誤。如果你是在Apollo上建立,
確定你是使用9.7.1 或更後面版本的C編譯器,否則,server將無法
正確地編譯。
7. 確定你已遵循所有和機器特性有關的指示,且imake 也是依你的機器
而建構。(看source tree 中util/imake.includes/Imake.tmpl頂端
的#ifdefs 區段(blocks))。
8. 當你完成了建構,你可以準備建立core版,注意那些在
util/imake.includes/應用到你的系統的.macros 檔案。它們在接近
頂端有一行設定一個make的變數名稱為BOOTSTRAPCFLAGS 。如果這個
變數值是空白,你可以用下列的命令開始建立:
% make World > & make.world &
如果不是空白,你必須將此定義附加到命令列上。這可用imake 對所
有的編譯器設定特定的cpp 符號。(如果你在不同的系統安裝,見
util/imake/imake.c)在所有的core版提供的macro 檔案中,只有
A/UX需要這個旗標:
% make BOOTSTRAPCFLAGS=-DmacII World >& make.world &
不要用輸出檔make.log當作make clean藉make World移去此名稱的
所有檔。這將導致重建所有的Makefiles 和執行make -k all 來編譯
core版中所有的東西。這將依你的機器不同,花掉2 至12小時。
9. 當make完成後,檢討log 是否有任何問題。必須要沒有嚴重的問題,
A/UX的使用者可以忽略有關列舉型態不調和(enumeration type
clashes)的編譯警告,Applo 的使用者可以忽略最佳化的警告。
10.如果你對一切均感到滿足且建立正確程序,測試一些不同的程式(如
server, xterm, xinit, etc)。你也許需要在根目錄執行 server或
xterm ,如果你執行上有問題,第二部的工作站或終端機將很有用。
11.對你舊版的Xheader file, binaries, fonts, libraries 等作備份。
12.到build tree頂端並鍵入
% make install >& make.install
你將不是在根目錄做便是在熟悉的目錄寫入存取(看Imakefile 最上
階層和util/imake.includes/Imake.tmpl)。xterm 程式在大多數的
系統必需安裝setuid到根目錄,xload 程式必需安裝setguid 到那些
屬於/dev/kmem 的檔案。
13.如果你要安裝指南頁,在build tree頂端鍵入
% make install.man
14.如果你要建立和安裝lint libraries,在build tree的頂端輸入:
% make install.ln
如果你是第一次安裝X,你可能也需要作以下的步驟。檢查一下在
server/ddx目錄中不同的README檔案中附加的指示。
15.加入裝置驅動器或重新建構你的核心(kernel)。
16.建立附加的虛擬終端機(pseudo terminals)。查看你的操作系統說明
/dev/MAKEDEV和問你的系統管理者細節部份。
17.閱讀有關新的顯示管理器xdm 的指南頁,這個程式提供了一個可攜的
自動執行X的方法,和許多為了初學者所建立非常好的介面符號。這
取代了原先自/etc/init 執行的終端機模擬器xterm 。
18.確定所有的X11 的使用者在他們的搜尋路徑中均為BINDIR的目錄(通
常為/usr/bin/X11)。
B.2.2 操作系統需求
X受歡迎的理由之一為和操作系統無關。雖然我們討論的□例均為在Unix
系統下,但有許多非Unix操作系統的制造廠商也提供X。本次發行的Server已
在下列系統建立:
4.3+tahoe
Ultrix 3.0 FT2(Ultrix 2.0)
SunOS 3.4
HP-UX 6.01
Apollo Domain/IX 9.7
IBM AOS 4.3
A/UX 1.0
如果你使用較早的版本,你可能招致一些麻煩,特別是,server將無法在
IBM 4.2A第二次發行版執行。在server/ddx/ 中不同的README檔案描述了對編
譯器、函數館、前處理器等等的特定需求。例如前述的A/UX 1.0的使用者將需
要建立一個新版的C前處理器,而Apollo的使用者將需要9.7.1版的C編譯器。
你應在使用X前先確定你的網路系統和相互通訊公用程式作用正常。如果
像talk和rlogin這樣的程式無法工作,X大概也不行。
B.2.3 讀取本發行版的磁帶
本發行版可以用電子媒體的方式從DARPA 交換網路、UUNET 計畫、一些諮
詢公司和不同的UUCP的檔案庫。尤有進者,MIT 軟體發行中心提供了一組2400
□的1600BPI 密度的磁帶。(該中心不提供卡帶或磁碟片)
每一卷MIT 的磁帶包含有一個大的tar 目錄結構,內含發行版一部份的軟
體的原始碼和文件。如果你受限於磁碟機的空間,你可以只下載core磁帶,刪
除任何你不需要的server,和產生一份使用者貢獻磁帶的目錄以供以後查詢,
所有的檔案名稱均以相對路徑方式給定(在開頭以一個點替代斜線),所以這
個發行版可放在你的檔案系統的任何地方。
在讀取磁帶之前,確定你有足夠的磁碟空間,以下為你對每卷磁帶所需的
空間。
版名 內容 megabytes 情況
core servers,函數館,公用程式 35 必需
contrib-1 程式,示□程式,字型 36 推薦使用
contrib-2 使用者貢獻的工具 34 推薦使用
編譯過的程式估計需要二分之一到三分之二原始碼所佔的空間,所以,光
是core版你便需要大約60 megabytes的磁碟空間。
建立一個目錄用以放置所有的原始碼,在此目錄中,執行適當的作業系統
命令來讀取core版磁帶。如果你的機器預設tar 為讀取1600 BPI的磁帶,則你
鍵入的指令將類似:
% mkdir /usr/local/scr/X
% cd /usr/local/scr/X
% tar x
必要時可向你的系統管理者取得協助。
B.2.4 使用符號連結(Symbolic Link)
本發行版在處理使用連結(Symbolic由機器所支援)避免檔案重覆(大多
的header file ),如果你在未提供建構檔案情況下建立本發行版,你必須在
適當的util/imake.includes/*.macros檔案檢查LN建構參數。如果你的作業系
統不提供軟體連結,LN需被設定為建立硬體連結(hard link) 或拷貝原始檔。
如果你需要在建立後將本發行版移動到其它的機器,用tar 替代CP或rcp
以保留日期和連結,通常可用下列的命令達成:
% (chdir/usr/local/src/X;tar cf - .) | \
rsh othermachine "(chdir/moredisk/X; tar xpBf -)"
可向你的系統管理者獲得協助。
B.2.5 建構本發行版
這個發行版廣□使用 imake 公用程式, 它可從機器相關的 (machine-
independent)Imakefiles 產生機器特有的 (machine-specific) Makefiles.
另一個叫做 makedepend 的公用程式, 是用於產生C語言檔案的 Makefile 相
關性 (dependencies). 假如你不在乎可攜性 (portability), 雖然我們強烈地
鼓勵你去使用imake 與 makedepend, 但是仍提供有樣本 makefiles.
imake 的建構檔被置於 util/imake.includes 目錄. makefiles 是由一個
稱做imake.tmpl 的模板 (template)檔、一個機器特有的 .macros 檔與一個
site 特有的 site.def 檔所產生. 只有極少例外, 建構參數為 cpp 符號, 它可
以被定義於一個 per-server 基礎上或在一個給定 site 裡的所有 server. 模
板檔案不應該被修改.
util/imale.includes/README 檔案每一個建構參數以及它可以設定的值.
預設值的選擇是考量可適用於多種機器且易於維護. site 特有的建構應在
sit.def 檔案內使用下列語法描述 :
#ifndef BuildParameter
#define BuildParameter site-specific-value
#endif
B.2.6 編譯本發行版
建構參數設定後, 你應該可以在構造樹 (build tree) 的最上層利用下列
命令以編譯core 軟體 :
% make World > &make.world &
若在建立過程, 將 make.log 這個特殊檔案刪除, 則請不要將輸出重導
(redirect) 到make.log。依照使用機器的不同, 這個步驟將花費 2 - 12 小
時, 且在大多數的機器上皆能順利完成。
在所有 Makefiles 與相關性都建好之後, 你必須重新啟動以便使你的構
造 (build) 發生作用, 請在構造樹的最上層輸入下列命令:
%make -k > &make.out &
假如你以後決定改變任何建構參數, 你將需要作另一個完整的 make World.
B.2.7 安裝發行版
假如每一個編譯皆成功, 你可以輸入下列命令, 從建造樹最上層安裝軟體:
# make install
假如你不想安裝在根目錄, 你必須建一些可寫入的目錄並從你的帳號
(account) 安裝它們, 然後檢查在 BINDIR 目錄 (通常是 /USR/BIN/X11) 內
的 xterm 與 xload 的所有權(ownership) 與保護模式 (protection). xterm
必須安裝 setuid 至根目錄以便它能設定虛擬終端機與更新/etc/utmp. xload
需被 setuid 至根目錄, 或 setgid 至擁有檔案 /dev/kmem 的目錄以使它們
可以取得系統的平均負載.
假如你的 /etc/termcap 與 /user/lib/terminfo 資料庫沒有 xterm 的
入口 (entry),可參考在 client/xterm 目錄內的樣本入口. System V 的使用
者將需要用 tic公用程式編譯 terminfo 入口.
假如你計劃使用 xinit 程式去執行X, 你可能會想產生一個將指名的X
指到適當server 程式的連結 (link) (通常的名稱像 /usr/bin/x11/ 目錄裡
的 Xmachine). 然而,xinit 不打算給初學者使用; 取而代之, site 管理者被
期望能使用 xdm 或提供友善的使用介面.
假如你想安裝指南頁, 請檢查在 util/imake.includes/ 裡的
MamDirectoryRoot、ManDir 與 LibManDir 三個建構參數, 並在構造樹的最上
層輸入:
# make install.man
假如你喜歡建立與安裝 lint 程式庫, 在構造樹的最上層輸入下列命令:
# make install.ln
最後, 確定所有使用者在它們的 PATH 環境變數都有 BINDIR (通常是
/usr/bin/x11/).
B.2.8 kernel 與特殊檔案的注意事項
在某些機器上, 如果有一個新的裝置驅動器則必須重建 kernel 或至少經
過重新建構, 假如你以前從未執行X且使用一個沒有列在這些注意事項內的系
統, 你可能需要確定在你的 kernel 建構檔案裡的 csr位址能與你的硬體相匹
配. 另外, 你應該確定在系統啟動時 kernel 會自動建構顯示器.
你可能需要為你的顯示器、滑鼠或鍵盤建立特殊的裝置. 例如:
# /etc/mknod/dev/bell c 12 2 # for bell on Sun
# MAKEDEV displays # for displays on the RT/PC
在顯示器裝置檔上的保護模式應該被設定成只有 server 可以開啟它. 假
如 server是以 /etc/init啟動, 這個保護可以被根讀/寫, 任何其他的人不能
存取.
在一個 Digital QVSS (VAXstation II) 上, 你應該使用 adb 去確定
kernel 變數qv-def-scrn 被設定為 2, 以便使用 VR-260 監視器的整個寬度.
這可以藉直接地改變/vmunix 或 /sys/vaxuba/qv.o 並重新連結與安裝
kernel 來達成. 你將需要 reboot 使新值發生作用.
更詳細的資料請看 Server/ddx/ 目錄裡對應的 README 檔與指南頁.
B.2.9 測試本發行版
即使你計劃在所有時間都使用 xdm 執行X, 你也應該要從另一個終端機執
行它, 以便檢查每個你所安裝部份的是否已被安裝且正常工作.
來自 server 的錯誤訊息將會顯示在你的終端機, 而不是被寫到
xdm-errors 或/usr/adm/X?msgs ('?' 是顯示器的號碼).
測試 server 最簡單的方法是先進入 /usr/bin/x11 (或任何你已安裝 X
程式的地方)然後執行 xinit, 如下:
% cd/usr/bin/X11
% xinit
你應該可以看到一個灰色的帶狀圖樣覆蓋螢幕、一個形狀像 "X" 的遊標追
蹤指標以及一個終端機模擬視窗. 否則請按下列方式檢查 :
1. 假如沒有顯示出灰色螢幕背景, 檢查是否有在 server/ddx/ 子目錄內的
README 裡描述的任何特殊裝置檔案的許可 (通常是儲存在 /dev/).
2. 假如背景出現, 但遊標仍是白色方形. 請確定字型是否已安裝 (特別是
usr/lib/X11/fonts/misc/ 裡的字型 cursor.snf; 見建構參數
DefaultFontPath). 並確定在你的每一個字型目錄都有一個檔案叫做font.dir.
這個檔案是由 mkfontdir 程式產生的, 被 server 用於找出一個目錄裡的字型.
3. 假如遊標出現但不追蹤指標, 請確定任何特定裝置檔案 (它的名稱像
/dev/mouse) 已被安裝 (見 server 的 README 檔).
4. 假如 SERVER 啟動且不久之後變成黑色, 表示啟始的 client (xterm 或
xdm) 當掉了.請確定 xterm 安裝於根目錄並建立足夠的虛擬終端機. 假
如你正執行 xinit, 且在你的home 目錄一個有叫做 .xinitrc 的檔案,
確定它是可執行的而且上一個它所啟動的程式在前景執行 (亦即命令列尾
端沒有一個 & 符號). 否則, .xinitrc 將立刻完成, 這也是 xinit 所
假設的以及你所想要的. 只要你有正確工作的初始視窗, 試從 xterm 執
行其他的程式. 若想用 uwm 視窗管理器定位一個新視窗, 可在閃動的方框
出現時按下按鈕 1 (通常在指標器的最左邊按鈕) :
% xlock -g 200x200-0+0 &
% uwm &
% xlogo &
% xeyes &
...
X現在可以被使用了, 研讀一個新程式的指南頁, 看看新字型, 你會從中
得到樂趣.
B.2.10 建立額外的虛擬終端機
因為每個 xterm 需要一個不同的虛擬終端機, 所以你應該建很多給它們
(在一個小型多使用者系統你可能至少要 32 個). 每個 ptr 有兩個裝置, 一
個主控 (master) 與一個從屬(slave), 它們通常叫做 /dev/tty/[pqrstu][0-f]
與 /dev/pty[pqrstu][0-f]. 假如你沒有最少的 "p" 與 "q" 列建構, 你應該
要求你的系統管理者加上它們. 這通常是以 /dev裡執行的 MAKEDEV script來
完成:
# cd/dev
# ./MAKEDEV pty0
# ./MAKEDEV pty1
B.2.11 從 /etc/rc 啟動X
本發行版提供一個可以從系統啟動檔 /etc/rc 執行X server 的新公用
程式叫做 xdm,它提供一個不同於從 /etc/init 執行X 的可攜式與吸引人的
方式. 設計時考慮到可以很容易地裁剪以應不同工作站的需求, xdm 小心地
保持 server 的執行, 提示輸入使用者名字與密碼並管理使用者的session.
樣本建構目前使用 shell script, 以提供相當簡單的環境. 這也將是未來發
行版繼續研究的地方.
xdm 彈性的關鍵是它廣泛使用resource, 允許 site 管理者快速與容易地
測試不同的設定(setup). 當 xdm 啟動, 它讀入一個建構檔 (預設是
/usr/lib/X11/xdm/xdm-config 但可以用命令列旗標指定-config) 列出不同的
資料檔、預設參數以及啟動與關機時會被執行的程式. 因為它使用標準的
Toolkit resource檔案格式, 任何可以在 xdm-config 檔設定的參數也可以在命
令列使用 -xrm 選項指定.
預設建構包含下面所列:
DisplayManager.servers: /use/lib/X11/Xservers
DisplayManager.errorLogFile: /use/lib/X11/Xdm-errors
DisplayManager*resources: /use/lib/X11/Xresources
DisplayManager*startup: /use/lib/X11/Xstartup
DisplayManager*session: /use/lib/X11/Xsession
DisplayManager*reset: /use/lib/X11/Xreset
server 檔包含要啟動的 server 列表. errorLogFile 是 xdm 輸出被重
導的檔案.resources 檔包含 xdm Login 視窗預設的resource. 特別的地方是
特殊鍵的順序可以被指定 (在 xlogin*login.translation resource), startup
檔應該是一個程式或可執行的 script, 它可以在使用者打入合理的密碼之後執行
. 它是一個作 site 特有的初始化, logging 等的圈套 (hook). session 入口是
用於啟動使用環境的一個 session 管理程式或可執行script 的名稱. 假如使用者
在他的 home 目錄內沒有一個可執行的 .xsession 檔, 有一個簡單的版本可提
供一個簡單的 xterm 視窗與 uwm 視窗管理器. 最後, 在使用者 logout之後一
個 reset 程式或可執行的 script 會被執行. 使用預設建構執行 xdm, 加入下列
一行到你的 boot 檔 (通常叫做 /etc/rc 或 /etc/rc.local) :
/usr/bin/X11/xdm &
毫無疑問地, 大多數的 site 想建立它們自己的建構. 我們建議你們將 site
特有的xdm-config 檔與其它的 xdm 檔放在不同的目錄, 這樣才不會被某些作
了一個 makeinstall 的人蓋掉. 假如你將檔案儲存在 /usr/local/lib/xdm,
下面的命令可用於以啟動xdm :
/usr/bin/X11/xdm -config /usr/local/lib/xdm-config &
許多 server 在假設它們是嘗試讀取鍵盤的唯一程式下, 將鍵盤設定成非
阻斷式 I/O(non-blocking I/O). 不幸地, 某些 /etc/getty 的版本 (特別是
A/UX) 將立刻看到一個零長度讀取的連續 stream, 因為將它解釋成 EOF 檔尾
指示. 最後 /etc/init 將取消login, 一直到某人打入下列命令:
# kill -HUP 1
在 A/UX 下, 一個變通的方法是禁止從控制台 login 且從 /etc/inittab 去
執行 xdm.然而, 請確定你存有一個舊的 /etc/inittab 拷貝以備你在出錯狀
況以及你必須從網路上或單使用者模式恢復 login 的時候使用.
另一個較少為人徹底研究的是如何設定一個帳號 (account), 它的 shell
是在client/xdm/裡的 xdmshell 程式. 預設狀況下這個程式不會被安裝, 所以
site 管理者需要特別查看它是否符合需求. xdmshell 公用程式確定它執行於
適當的終端機型式、啟動 xdm、等待它完成與重置控制台 (如果需要的話).假
如 xdm resource檔包含一個終止-顯示器 (abort-display) 動作的系結, 就像
下列命令 :
xlogin*login.translations: #override Ctrl<Key>R: abort-display()
然後在 xdm login 視窗按下指定鍵 (上例是 <Ctrl-R>) 控制台即可以被恢復.
xdmshell 程式通常安裝在根目錄, 但僅能被特殊群體的一份子執行, 如
此以 xdmshell作為 shell 的帳號 (account) 的人是唯一的一份子:
% grep xdm /etc/passwd
X:aB9i7vhDVa82z:101:51:Acount for starting up X: (contd.)
/tmp:/etc/xdmshell
% grep 51 /etc/group
xdmgrp:*:51:
% ls -g /etc/xdmshell
-rws--x--- 1 root xdmgrp 20338 Nov 1 01:32 /etc/xdmshell
假如 xdm resource不曾有一個鍵系結至 abort-display() 動作的建構,
一般使用者將沒有方法可直接 login 到控制台. 至於是否需要則視個別的
site 而定.
B.2.12 支援老舊系統 -- 從 /etc/init 啟動X
警告 : 下面所提供的適合較老的系統且在未來的發行版將不提供.
Ultrix 與 4.3bsd 使用 /etc/ttys 建構檔的一個新的擴充格式, 它允許
你指定一個視窗系統與初始時被執行的程式. 雖然一般人比較喜歡使用 xdm,
但系統仍然提供可在 xterm裡啟動X與一個從 /etc/ttys 初始的 xterm 視窗.
建立 ttyv 終端機
因為大多數的 /etc/init 版本需要給每個 /etc/ttys 的入口一個真實終
端列, 所以你必須給每一個顯示器指定一個虛擬終端機. 雖然正常狀態下xterm
動態地配置一個 pty, 但是 -L 選項可以強迫它使用從 /etc/init 傳過來的虛
擬終端機.
依照協議, 具有最高的 "小裝置 (minor device) 號碼" 被改名成
[pt]tyv0, 次高的被改為 [pt]tyv1, 依此類推. 最高的被改為最低的, 可使
他們不以正常從低至高的搜尋方法 (大多數程式配置一個 pty 的方法) 取得
. 在僅有 "p" 與 "q" 的小系統, 下面的命令可用以將兩個顯示器設定成"v"
終端機.
# cd /dev
# mv ttyqf ttyv0; mv ptyqf ptyv0
# mv ttyqe ttyv1; mv ptyqf ptyv1
見你的系統管理者可以獲得幫助.
增加視窗進入口到 /etc/ttys
只要你已經改變虛擬終端機的名稱, 你就能為它們在 /etc/ttys 增加入口
. 再次提醒這個僅對具有以新的 4.3bsd 格式啟動視窗系統的系統, 不能用在
使用 4.2bsd 小進入口格式與 /etc/ttytype 的較老系統上. 假如你的系統沒
有新的格式, 將 ttyv 的與 ptyv 的改為原名並跳到下一部分.
xserver 指南頁裡包含關於設定 /etc/ttys 進入口的更詳細敘述. 通常
, ttyv 被置於檔案的底部且類似下列:
ttyv0"/usr/bin/X11/xterm -L -grometry 80x24+0+0 -display :0" (contd.)
xterm off window="/usr/bin/X11/X :0"
注意, 它不像 X10, 給 X server 命令的 server 號碼之引數必須在前面
置一個冒號. 額外的命令列選項可以在 xterm 命令列或X命令列指定. 然而,
許多 init 的版本具有相當小的程式名稱緩沖區, 限制了入口的長度. 也有某
些版本不允許在入口裡有 pound記號, 意謂不能給任意數目的顏色指定, 這
也是為什麼會寫 xdm 的原因.
只要你曾經增加或改變任何入口, 你必須送信號給 init, 告訴它重讀 /etc/ttys
與重新啟動. 在根目錄下打入下列命令即可以達到這個目的:
# kill -HUP 1
這將會中止在重新啟動前任何改變列上的任何存在的處理 (process), 所以它
應該僅能由系統管理者去執行.
=====
(http://www.fanqiang.com)
進入【UNIX論壇】
|