Gentoo Linux 2005.0 x86 手冊[34]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

系統設定變數

您不需要任何動作來提供一個 /etc/conf.d 的設定檔:如果您的 init 程序執行了,以下將會自動的載入(例:可用的變數):

  • /etc/conf.d/<您的 init 程序>
  • /etc/conf.d/basic
  • /etc/rc.conf

另外,如果您的 init 程序需要一個虛擬的相依性(如 net),那麼相關的檔案將會也會被載入(如 /etc/conf.d/net)。

4.e. 更改執行階段(RunLevel)的態度

誰會受益?

很多使用手提電腦的使用者將會明白這個狀況:在家裡您需要啟動 net.eth0,在外面因為沒有網路,所以您不想啟動 net.eth0。因此您可以依照您的需求而改變 Gentoo 的執行階段。

舉例來說,您可以建立第二個 "default" 執行階段來讓您執行其他的起始程序(Init Scripts)。然後在開機時選擇使用預設的執行階段。

使用 softlevel

首先,建立第二個 "default" 執行階段。我們將建立 offline 執行階段為這次的範例:

原始碼 23: 建立一個執行階段目錄

# mkdir /etc/runlevels/offline

然後加入相關的起始程序到剛建立完成的目錄內。舉例來說,如果除了 net.eth0 以外,您想要將其他 default 執行階段的內容都複製到新的執行階段:

原始碼 24: 加入相關起始程序

(把所有預設執行階段的服務複製到 offline 執行階段)
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
(將不需要的服務從 offline 執行階段移除)
# rc-update del net.eth0 offline
(顯示 offline 執行階段啟動的服務)
# rc-update show offline
(部分的輸出)
acpid | offline 
domainname | offline 
local | offline 
net.eth0 | 														   

現在編輯您的開機程式設定檔然後加入一個新的 offline 執行階段。舉例來說,在 /boot/grub/grub.conf

原始碼 25: 加入 offline 執行階段

title Gentoo Linux Offline Usage
  root (hd0,0)
  kernel hd(0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline

噹啷!完成了。當您重新啟動系統然後選擇剛加入的選項, offline 將會被執行而不是本來的 default

使用 bootlevel

使用 bootlevelsoftlevel 的方法完全類似。唯一不一樣的就是您需要定義另外一個 "boot" 執行階段而不是第二個 "default" 執行階段。

5. 環境變數

5.a. 系統變數?

這是什麼

系統變數是一個有名稱的物件,包含一個或多個程式要用的資訊。許多使用者(特別是 Linux 新手)覺得這有一些古怪而且難以管理。這想法有一些錯誤:使用者可以用系統變數輕鬆的改變一個或多個程式設定。

重要的範例

下面的表格顯示許多 Linux 使用的變數以及它們的用途。範例在表格後面展示。

變數說明
PATH這個變數包含用冒號分隔的目錄列表,讓系統尋找可執行檔。如果您輸入一個可執行檔 (例如 lsrc-updateemerge)但是這個檔案不在列表中的 目錄,您的系統不會執行它(除非您輸入完整的路徑,如 /bin/ls)。
ROOTPATH這個變數和 PATH 有相同功能,但是這裡面包含的目錄是根使用者數入指令時 才會尋找。
LDPATH這個變數包含以冒號分隔的目錄列表,讓動態連結檔在裡面搜尋函式庫。
MANPATH這個變數包含以冒號分隔的目錄列表,讓 man 指令搜尋手冊頁。
INFODIR這個變數包含以冒號分隔的目錄列表,讓 info 搜尋資訊頁。
PAGER這個變數包含顯示檔案內容的程式路徑(例如 lessmore)。
EDITOR這個變數包含編輯的程式路徑(例如 nanovi)。
KDEDIRS這個變數包含以冒號分隔的目錄列表,設定 KDE 的主要路徑。
CLASSPATH這個變數包含以冒號分隔的目錄列表,設定 Java 程式的路徑。
CONFIG_PROTECT這個變數包含以空白分隔的目錄列表,這些目錄在 Portage 更新時需要被保護。
CONFIG_PROTECT_MASK這個變數包含以空白分隔的目錄列表,這些目錄更新 Portage 時不要被保護。

底下是所有的變數的設定範例:

原始碼 1: Example definitions

PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf                 /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/                 /usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf

5.b. 定義全域變數

/etc/env.d 目錄

為了要集中管理這些變數的設定,Gentoo 使用 /etc/env.d 目錄。在目錄中您會發現許多檔案,例如 00basic05gcc 等。這裡面包含檔案名稱中所提到的程式需要用的變數。

例如,當您安裝 gcc 後,ebulid 會建立一個叫做 05gcc 的檔案,包含下面的變數設定:

原始碼 2: /etc/env.d/05gcc

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"

其他的 Linux 套件會告訴您在 /etc/profile 或其他地方新增這些變數。 Gentoo 則讓您很容易(對 Portage 也是)去管理這些變數而不用注意其他設定系統變數的檔案。

舉例來說,當 gcc 更新了之後,/etc/env.d/05gcc 也會同時被更新而使用者不必做任何事。

這不僅對 Portage 有好處,對使用者也是。您或許偶爾會被要求設定一些系統變數。拿 http_proxy 做例子。您不用弄亂 /etc/profile,只要建立一個檔案( /etc/env.d/99local )然後在裡面輸入設定:

原始碼 3: /etc/env.d/99local

http_proxy="proxy.server.com:8080"

藉著將您自己的變數設定放到這個檔案中,您可以很快找到哪些變數是您自己設定的。

env-update 指令稿

/etc/env.d 中的數個檔案同時定義了 PATH 變數。這並沒有錯:當您執行 env-update,他會把數個設定同時加到系統設定中,因此讓軟體套件(或使用者)加入他們自己的設定而不會干擾已經存在的設定。

env-update 指令稿將會以 /etc/env.d 中的檔案名稱以字母順序依序加入系統設定中。檔案名稱開頭必需要是兩位數的數字。

原始碼 4: env-update 的新增順序

         00basic        99kde-env       99local
     +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"

本文关键:Gentoo Linux 2005.0 x86 手冊
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top