EMERGE_DEFAULT_OPTS
EMERGE_DEFAULT_OPTS変数の値は、emergeコマンド行の末尾に付加されます。これはしばしば、どれだけの数のパッケージを並行ビルドさせるかをPortageに伝える--jobs N
オプションや、並行ビルドの際どの数値までシステム負荷(ロードアベレージ)を許容するかをPortageに伝える--load-average X.Y
オプションを使用しての並行emergeの操作をするのに使用されます。
一般的な用法
並行ビルド
--jobs N
(短縮形:-jN
)を使うことで、N個のジョブを同時に実行します(引数なしでは、-j
は可能な限り多くのジョブでプロセッサを溢れさせます。そしてこれは非推奨です)。一般的には、Nの値にはコア数が設定されます。
例えば、3つまでの並行ジョブを行う場合:
/etc/portage/make.conf
3ジョブ並行のビルドを有効にする例EMERGE_DEFAULT_OPTS="--jobs 3"
--load-average X.Y
(短縮形:-lX.Y
)を使用することで、emergeはシステムのロードアベレージをX.Y(浮動小数点数)未満に抑えようと試みます。もし--jobs
が一緒にセットされている場合、emergeはパラメータが指示している制限以内で実行されます。
ロードアベレージの値はtopやuptimeで表示される値と同一で、Nコアのシステムでは、ロードアベレージN.0
は100%ロードされている事になります。経験則としては、X.Y=N*0.9
とセットすることで、これによってロードの制限を90%にし、従って応答性を維持することができます。
もし
MAKEOPTS="-N"
がEMERGE_DEFAULT_OPTS="--jobs K --load-average X.Y"
と一緒に使用されている場合、作成されうるタスクの数はN*K
です。従って、両方の変数は、これらがそれぞれ最大N個のタスクを作り出すK個のジョブを作成することを考慮して設定する必要があります。これらの2つの設定は、たくさんのソースコードファイルを含む長いemergeの際に、--jobs
パラメータを最大限に活かすのに適しています。これらはまた、emergeのエラーを起こす場合がありますので、注意して使い、もし問題が発生したのならば、これらをコメントアウトするようにしてください。