2.b. 編譯相關的選項
設定和編譯器的選項
當 Portage 編譯程式時,它會將下列變數的數值傳給編譯器和 configure script:
- CFLAGS 和 CXXFLAGS 設定編譯器編譯 C 和 C++ 程式所使用的 flags。
- CHOST 設定程式的 configure script 所需要的主機資訊。
- MAKEOPTS 會傳給 make 指令,通常用來設定編譯時平行處理的程度。更多關於 make 的參數可以在 make 的 man page 中找到。
USE 這個變數也會在 configure 和編譯階段用到,但我們已經在前面的章節講述的非常清楚了。
Merge 選項
Portage 在安裝(merge)某個軟體的新版本之後,會將舊版本相關的檔案從您的系統中移除。在進行這個動作之前,Portage 會給使用者 5 秒鐘的緩衝時間,這個數值是由變數 CLEAN_DELAY 來設定。
2.c. 設定檔的防護
Portage 保護的目錄位置
Portage 會將軟體新版本提供的檔案覆寫到系統上,唯一的例外是存放在protected 位置的檔案。這些受保護的位置定義在 CONFIG_PROTECT 變數下,通常是設定檔的目錄位置。要設定多個目錄位置時,在目錄間用空白(space)分開。
當一個需要被寫入系統的檔案存放在受保護的位置時,Portage 會用別的檔名將檔案寫入系統,然後告知使用者該設定檔新版本的存在。
您可以利用 emerge --info 取得目前 CONFIG_PROTECT 的設定:
原始碼 2: 獲得 CONFIG_PROTECT 的設定 |
$ emerge --info | grep 'CONFIG_PROTECT='
|
更多關於 Portage 設定檔防護的資訊可以從 emerge 獲得:
原始碼 3: 得到更多關於設定檔防護的資訊 |
$ emerge --help config
|
排除特定目錄
您可以使用 CONFIG_PROTECT_MASK 變數來 '不保護' 受保護位置下的特定子目錄。
2.d. 下載選項
Server 位置
當您的系統上沒有所需要的資訊或是資料時,Portage 會從網路上抓取,而取得這些資訊和資料的 server 位置定義在下列變數內:
- GENTOO_MIRRORS 設定存放有原始碼(distfiles)的 server 位置。
- PORTAGE_BINHOST 設定可提供您系統預先編譯套件(prebuilt packages)的 server 位置。
第三個設定是用來更新 Portage tree 的 rsync server 位置:
- SYNC 設定 Portage 用來取得 Portage tree 的 server。
GENTOO_MIRRORS 和 SYNC 變數可以用 mirrorselect 程式來自動設定。您需要先 emerge mirrorselect。請參考 mirrorselect 的線上輔助來獲知更多資訊:
原始碼 4: 更多關於 mirrorselect 的資訊 |
# mirrorselect --help
|