你現在可以看到新舊設定檔間的不同處。如果你相信更新過的設定檔可以正確無誤的使用,輸入 1。如果你認為更新檔案沒有必要,或沒有提供任何新或有用的資訊,輸入 2。如果你想要互動的更新目前的設定檔,按 3。
在這裡更深入的說明互動是並沒有意義。為了完整的理由,我們會列出在你互動合併兩個檔案時可以用的指令。你會看到兩行(原來的,以及新建議的)和你可以輸入下列指令的提示符號:
原始碼 4: 互動合併時可用的指令 |
ed: 在編輯器中編輯兩種版本,各個版本前加上不同標頭。 eb: 在編輯器中編輯兩種版本。 el: 編輯左邊的版本然後使用。 er: 編輯右邊的版本然後使用。 e: 編輯新的版本。 l: 使用左邊的版本。 r: 使用右邊的版本。 s: 簡潔的包含共同部份。 v: 詳細的包含共同部份。 q: Quit. |
當你更新好這重要的設定檔,你以自動更新所有其他的設定檔。如果沒有其他需要更新的檔案,etc-update 會自動離開。
4.b. dispatch-conf
使用 dispatch-conf 你可以合併更新到你的更新當同時監看所有的改變。 dispatch-conf 以 patch 檔案或是使用 RCS 修訂版系統來儲存設定檔間的不同處。
就像 etc-update,你可以保持原本的設定檔,使用新的設定檔,編輯目前設定檔或互動合併改變。然而 dispatch-conf 也有一些很棒的功能。
- 自動合併只有註解更新的檔案。
- 自動合併只有空白的地方修改的檔案。
確定你先編輯過 /etc/dispatch-conf.conf 然後建立 archive-dir 變數設定的目錄。
查看 dispatch-conf 手冊頁取得更多資訊:
原始碼 5: 閱讀 dispatch-conf 手冊頁 |
$ man dispatch-conf
|
4.c. quickpkg
使用 quickpkg 你可以建立已經安裝在你系統上軟體的套件檔。這檔案可以當作預先編好的套件。執行 quickpkg 相當直觀:只要加入你想製作的套件名。
例如說,打包 curl,arts 和 procps:
原始碼 6: quickpkg 使用範例 |
# quickpkg curl arts procps
|
預先編譯好的套件會放在 $PKGDIR/All (預設是 /usr/portage/packages/All)。到這些套件的符號連結在 $PKGDIR/<category>。
5. 愉悅的使用官方的Portage Tree
5.a. 使用 Portage 樹子集合
排除套件/類別
你可以選擇只更新某些類別/套件並且忽略其他類別/套件。我們讓 emerge --sync 在執行 rsync 時排除類別/套件來達成這個功能。
預設上,rsync 會檢查 /etc/portage/rsync_excludes 的內容(如果存在的話),裡面包含了你不要 rsync 更新的類別或套件。
然而要注意的是這可能導致相依性問題,因為套件可能相依被排除的套件。
5.b. 加入非官方套件
定義 Portage Overlay 目錄
你可以要求 Portage 使用非官方,但是以透過 Portage 樹使用的 ebuild。建立一個新目錄(例如說 /usr/local/portage)來存放其他人提供的 ebuild。使用和官方 Portage 樹相同的目錄架構!
然後在 /etc/make.conf 中定義 PORTDIR_OVERLAY 指向你使用的目錄。現在當你使用 Portage 時,他也會將這些 ebuild 納入考慮,而且下次你執行 emerge --sync 時不會移除/覆蓋這些 ebuild。
使用多個 Overlay
對於開發多個 overlay 的重度使用者,在更新 Portage tree 前測試或是使用多個來源的非官方 ebuild,app-portage/gentoolkit-dev 套件提供你 gensync,幫助你保持 overlay 在最新的狀態。
你可以用 gensync 一次更新所有 Overlay,或更新其中幾個。每個 Overlay 要在 /etc/gensync/ 目錄中放一個 .syncsource 檔案,包含 Overlay 位置,名稱,ID 等等。
假設你有兩個叫作 java (發展中的 java ebuild) 以及 entapps (你為工作開發的軟體),你可以像這樣更新 overlay:
原始碼 1: 使用 gensync 更新一些 overlay |
# gensync java entapps
|