web-dev-qa-db-ja.com

Gentoo:以前の履歴書データを保持しながらパッケージを作成するにはどうすればよいですか?

Gentoo Linuxで、並列エマージングが有効になっている多くのパッケージをエマージングしていて、ソースコードのコンパイルに大量のRAMが必要なため、そのうちの1つが失敗し、コンパイラーがメモリ不足に陥り、問題が発生したとします。これはおそらく、問題のあるパッケージだけがビルドされていなかったために発生したため、そのパッケージを個別に出現させれば、問題なくビルドできる可能性があります。そのため、その1つのパッケージのみを出現させ、それが完了したら、以前の大きな出現の残りを再開したいと思います。どうすればいいですか?

resumeリストをファイルに保存してからemergeにロードする など、オンラインで投稿されたソリューションを見たことがありますが、これらのソリューションは最善ではないようです(そのソリューションソリューションは並列出現をサポートしていないようです)。理想的には、最善の解決策では、問題のパッケージを個別にインストールした後、emerge --resumeを発行して前のemergeを続行できるようにする必要があります。

3
RAKK
emerge ...
# fail
ebuild <PORTDIR>/<package_that_failed>.ebuild merge
emerge --resume

テストされていませんが、動作するはずです

1
rindeal

出現しているパッケージのこのリストをどのように指定しているかによって異なります。多くの依存関係を取り込むパッケージまたはセットを指定して実行する場合は、problematicパッケージをビルドしてから、同じコマンドを再度実行します。その場合、emergeはすでにマージされているパッケージをインストールしません。

ただし、可能性が低く、コマンドラインでパッケージのリストを手動で指定している場合は、既にマージされているパッケージをリストから手動で削除する必要があります。私の知る限り、すでにマージされたものを除外するパラメーターはありません。

おそらく、gentoolkitまたはportage-toolsのその他のヘルパーアプリを使用して魔法をかけることができますが、残念ながら私はそれらにあまり詳しくありません。

1
runcz