如果您的環境需要您使用 proxy server,您可以用 HTTP_PROXY、FTP_PROXY 和 RSYNC_PROXY 這些變數來指定 proxy server。
抓取指令
當 Portage 需要抓取原始碼時,預設是使用 wget,您可以用 FETCHCOMMAND 變數來更改。
Portage 能夠繼續部份下載的原始碼,而不用重新抓取。預設用來執行這項工作的程式是 wget,但是您可以用 RESUMECOMMAND 變數來改變。
請確認您的 FETCHCOMMAND 和 RESUMECOMMAND 將原始碼存到正確的位置。在這些變數內,您應該分別用 \${URI} 和 \${DISTDIR} 來指到原始碼和 distfiles 的存放位置。
您也可以針對不同的傳輸協定,設定所使用的指令,相關的變數有 FETCHCOMMAND_HTTP、FETCHCOMMAND_FTP、RESUMECOMMAND_HTTP、RESUMECOMMAND_FTP 等等。
Rsync 設定
您無法更動 Portage 用來更新 Portage tree 所使用的 rsync 指令,但是您可以設定一些與 rsync 指令相關的變數:
- RSYNC_EXCLUDEFROM 指到一個檔案,檔案內列舉 rsync 在更新過程中應該略過的套件和類別。
- RSYNC_RETRIES 設定 rsync 嘗試連到 mirror 的次數,mirror 由 SYNC 變數指定。預設值是 3。
- RSYNC_TIMEOUT 設定 rsync 連線因為閒置而被視為 timed-out 的時間(單位為秒)。這個變數預設值是 180,但是使用撥接的使用者可以設成 300 或更長。
2.e. Gentoo 設定
Branch 選擇
您可以用 ACCEPT_KEYWORDS 變數改變預選支系(default branch),預設值是您的系統架構下的 stable branch。更多關於 Gentoo branches 的資訊會在下一章說明。
Portage Features
您可以用 FEATURES 變數來啟用某個 Portage feature。Portage Features 在前面的章節,如 Portage Features,已經討論過。
2.f. Portage 行為
資源管理
透過 PORTAGE_NICENESS 變數,您可以增加或降低 Portage 執行時的 nice 值。PORTAGE_NICENESS 所設定的數值會被 加到 到目前的 nice 值上。
更多關於 nice 值的資訊,請參考 nice 的 man page:
原始碼 5: 更多關於 nice 的資訊 |
$ man nice
|
輸出行為
NOCOLOR,預設為 "false",設定 Portage 是否該取消彩色輸出。
3. 混用不同分支的軟體
3.a. 選擇一個分支
穩定分支
變數 ACCEPT_KEYWORDS 定義您的系統使用的軟體分支,預設是軟體在您系統架構下的穩定分支,例如 x86。
我們建議您只使用穩定分支(the stable branch)。但是,如果您不是很在意穩定性的問題,而且您願意幫助 Gentoo 偵測臭蟲,回報給 http://bugs.gentoo.org,請您繼續閱讀這份文件。
測試分支
如果您想要使用最新的軟體,您可以考慮選用測試分支(the testing branch)。要讓 Portage 使用測試分支,在您的系統架構前加上 ~。
測試分支就如同他所說的 - 測試。如果一個套件在測試中,這代表發展者覺得他可以運作,但是還沒有詳細的測試。你可以成為第一個發現錯誤的人,在這種狀況你可以回報錯誤讓發展者知道
要小心的是,你可能會捧到一些不穩定的問題,不完美的套件管理(例如錯誤/遺失相依性) ,過於頻繁的更新(導致要花很多時間編譯)或毀損的套件。如過你不清楚 Gentoo 如何運作及如何去修復,我們建議你停留在穩定而且測試過的分枝。
舉例來說,要選擇 x86 架構下的測試分支,編輯 /etc/make.conf,並做如下設定:
原始碼 1: 設定 ACCEPT_KEYWORDS 變數 |
ACCEPT_KEYWORDS="~x86" |
如果您現在要更新您的系統了,您會發現 一大堆 套件都需要升級。必須提醒您的是:當您用測試分支更新完您的系統之後,沒有辦法可以輕易地將系統改回使用官方建議的穩定分支(當然,使用備份例外)。
3.b. 混合使用穩定和測試分支
檔案 package.keywords
您可以要求 Portage 針對特定的套件使用測試分支,而系統其他所有的套件仍使用穩定分支。如果您想要這樣的功能,將您希望使用測試分支的套件類別和名稱加到檔案 /etc/portage/package.keywords 裡面。例如,要使用 gnumeric 的測試分支:
原始碼 2: /etc/portage/package.keywords 內 gnumeric 的設定,完整版 |
app-office/gnumeric ~x86 |
測試特定版本
如果您想要使用軟體在測試分支內某個特定的版本,但是您不希望 Portage 在後續的軟體更新上繼續使用測試分支,您可以在檔案 package.keywords 內加入版本資訊。在這種情況下,您 一定要 使用 = 運算子,您也可以使用 <=, <, > 或是 >= 運算子,鍵入一個版本範圍。
在任何情況下,如果您要加入版本資訊,您 一定要 使用運算子。如果您不想加入版本資訊,您 不可以 使用運算子。
在下面的例子中,我們要求 Portage 接受 gnumeric-1.2.13:
原始碼 3: 使用特定 gnumeric 版本 |
=app-office/gnumeric-1.2.13 ~x86 |
3.c. 使用被封鎖的套件
檔案 package.unmask
Gentoo 發展者不支援這些檔案的使用。請在練習時小心使用。和 package.unmask 及 package.mask 相關的要求並不會回應。
當一個套件被 Gentoo 開發者封鎖時,在檔案 package.mask 內會陳述套件被封鎖的理由(預設放在 /usr/portage/profiles),如果您仍然想要使用這個套件,將紀錄該套件的那行文字,原封不動 地加到檔案 /etc/portage/package.unmask 內。
舉例來說,如果 =net-mail/hotwayd-0.8 被封鎖了,您可以在 package.unmask 內加入完全相同的文字,而將其解封鎖:
原始碼 4: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8 |
檔案 package.mask
當您不希望 Portage 將某個套件或是套件的某特定版本列入考量範圍,您可以自己將該套件封鎖起來,這只需要在檔案 /etc/portage/package.mask 中加入相對應的紀錄。
例如,如果您不希望 Portage 安裝比 gentoo-sources-2.6.8.1 更新版的 kernel sources,您可以將下列一行文字加入 package.mask:
原始碼 5: /etc/portage/package.mask 範例 |
>sys-kernel/gentoo-sources-2.6.8.1 |
4. 附加的Portage工具
4.a. etc-update
etc-update 是一個幫助合併 ._cfg0000_<名稱> 檔案的工具。他提供互動式的合併設定,也可以自動處理明顯的改變。 ._cfg0000_<名稱> 檔案是由 Portage 在他想要把檔案複寫到被 CONFIG_PROTECT 變數保護的目錄時產生的。
執行 etc-update 相當的直觀:
原始碼 1: 執行 etc-update |
# etc-update
|
在合併明顯的改變後,你會看到需要更新的受保護檔案列表。在底下有兩個選項:
原始碼 2: etc-update 選項 |
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
|
如果你輸入 -1,etc-update 會離開不做任何改變。輸入 -3 或 -5 的話,所有列在上面的設定檔都會用新的覆蓋。因此先選擇不要自動更新的設定檔相當重要。這是很簡單的一件事情,只要輸入列在設定檔左邊的號碼就好。
我們用 /etc/pear.conf 設定檔當作範例:
原始碼 3: 更新特定設定檔 |
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
[...]
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
|