web-dev-qa-db-ja.com

古いebuildを削除せずにGentooLinuxで `emerge --sync`を実行するにはどうすればよいですか?

emerge --syncを使用すると、古い.ebuildファイルが削除されます。新しい.ebuild-sを取得するが、古いものを失わないようにする方法は?

3
marioosh

これを行う1つの方法は、削除関連のオプションを除いて、デフォルトのPortagersyncオプションをオーバーライドすることです。デフォルトのオプションは現在、私の場所の2039行目から/usr/lib/portage/pym/_emerge/actions.pyにハードコードされています。

追加する「--force」と「--delete」を除く

PORTAGE_RSYNC_OPTS = "-recursive --links --safe-links --perms --times --compress --whole-file --stats --timeout = 180 --exclude =/distfiles --exclude =/local- exclude =/packages "

/etc/make.confへ。ファイルやディレクトリが削除されないようにするため。

編集:通常、ポーテージツリー内にanyのようなebuildを保持したくないことに注意してください。に再同期します。

特定のebuildを保持したい場合、2つの典型的なシナリオがあります。

  • 保持したい古いebuildを使用しています。
  • 自分でebuildを作成したか、どこかでebuildを見つけて、同期先のPortageツリーに追加しました。

どちらの場合も、最善の解決策は、これらのebuildをローカルオーバーレイにコピーすることです。また、依存しているebuildをコピーする必要がある場合もあります。簡単なローカルオーバーレイを作成する方法は次のとおりです。 http://forums.gentoo.org/viewtopic-t-827407.html

3
Nicolas Kaiser