
Gentoo Linuxでは、並列ビルドが有効になっているいくつかのパッケージをビルドしていますが、そのうちの1つがソースコードをコンパイルするために多くのRAMが必要であるため失敗したとします。したがって、コンパイラのメモリが不足し、この現象が発生します。問題のパッケージはビルドされる唯一のパッケージではないため、そのパッケージがあればおそらく問題なくビルドされます。だから私はそのパッケージが現れることを望み、それが完了したら以前に現れた残りの部分を復元したいと思います。どうすればいいですか?
オンラインでは、次のようないくつかのソリューションを見ました。リストをresume
ファイルとして保存し、Emergeとして読み込むしかし、これらの解決策は最高ではないようです(ソリューションは並列エマージングをサポートしていないようです)。理想的には、最善の解決策は、emerge --resume
問題のあるパッケージを別々にインストールした後でも以前のエマージを続行できるようにすることです。
答え1
emerge ...
# fail
ebuild <PORTDIR>/<package_that_failed>.ebuild merge
emerge --resume
テストされていないが動作しなければならない
答え2
表示するパッケージのリストを指定する方法によって異なります。多くの依存関係を導入するパッケージまたは依存関係のセットを指定して実行された場合は、次のように構築します。問題がある同じコマンドを再圧縮して実行します。この場合、Emergeはマージされたパッケージをインストールしません。
ただし、予期しないことを実行してコマンドラインでパッケージリストを手動で指定する場合は、リストからマージされたパッケージを手動で削除する必要があります。私が知っている限り、すでにマージされたコンテンツを除外するパラメータがないからです。
おそらくgentoolkitやportage-toolsの他のヘルパーアプリケーションを使って魔法をかけるかもしれませんが、残念ながら私はこれらに慣れていません。