Emerge --syncがPortageツリーからファイルを削除するのを防ぐ方法はありますか?

Emerge --syncがPortageツリーからファイルを削除するのを防ぐ方法はありますか?

PORTAGE_RSYNC_OPTSオプションを使用すると、make.confrsyncオプションを変更できますが、--deleteそれを削除するとemergeエラーが発生します。 md5キャッシュエントリの欠落などについて述べたようです。

私は上流のPortageツリーよりも古いebuildファイルを長く維持したいと思います。

答え1

このebuildは何らかの理由でメインツリーから削除されました。メインツリーからebuildを削除してビルドできるようにしたいので、ebuildを維持することが目標である場合は、ローカルオーバーレイを作成して削除されたebuildをそこから抽出することをお勧めします。Source.gentoo.org

答え2

以前は、必要に応じて複製/チェックアウトできるPortageツリーストアがありました。このリポジトリでは、いつでも古いebuildを取り出すことができます。 Fortage / Gentooはマニフェストとチェックサムをどこにでも配置するため、アップストリームebuildはPortageツリーの一部になることを望まない。オーバーレイでのみ可能です。

あなたのためにGoogleで見つけました。スーパーユーザーSEに関するこの質問についてこれにはオーバーライド方法がわかり、Portage CVSリポジトリへのリンクも含まれます。

詳細は:

あなたは使用せず、後者で使用される前者をrsync使用しています。emerge部分実際には一部が表示されます。運ぶ、これは実際にパッケージとパッケージ情報を管理(コピーだけでなく!)に使用することです。見てみるとrsync、Portageの非常に深い詳細を見ることができ、その詳細を変更することはできません。代わりに、システム全体を考慮する必要があります。これがまさに単純なrsync調整行為では決して望む効果を得ることができずemerge

portage使用しているシステムの他の部分はチェックサムです。すべてのファイルにはチェックサムが必要です。実行すると、emerge --syncebuildをコピーして削除するだけでなく、Portageツリーのファイルリストとそのチェックサムも同期します。アップストリームから削除され、Portageツリーから削除されたファイルはPortageツリー内のファイルのリストからも削除されます(Portageツリーの一部ではないため)。

これが失敗する理由です。削除すると、--delete使用可能なチェックサムがないファイルがPortageツリーに残ります。ただし、上記のように、チェックサムはシステムの一部であるため必要です。

また、ファイルリストにチェックサムがあり、1つまたは他の追加のチェックサムがある可能性があるため、これを解決するのは面倒です。

管理者が削除した方が良いと思った古いebuildを維持するには、2つのオプションがあります。

  1. ポーテージシステムを破壊する可能性があります。

    a)rsync力の行動、

    b)emergeファイルリストに常にチェックサムを含むebuildが含まれるようにハックします。

    c) ファイルリストのチェックサムを含め、すべてのチェックサムが常に存在し、正常であることを確認する何かを構築します。

    d)安定したメンテナンス可能なオペレーティングシステムを提供するために、特別なebuildを維持しますが、古くて廃止され、バグのあるebuildを削除する一貫したシステムを考えてください。

  2. Portageシステムでこれを行うと、Portageツリーを上書きして変更できます。

きっと一つ持ってるXYの問題。あなたは、いくつかの重要なソフトウェアの電子コピーを保管したいと主張します。しかし、あなたはそれを行う方法を尋ねるのではなく、PortageツールであるEmergeが使用するツールの動作を修正する方法を尋ねることです。

この図をwxyzの問題に拡張できます。ここで、wは実際の問題であり、x(Portage)に沿って実行され、y(ナタ)を経て最後にz(rsync)から壁に当たる。今、数歩後退する時です。

他の人も今あなたと同じ意図を持っています(前のebuildを維持してください)。システム全体を混乱させることなくこれを達成するための効率的で文書化された方法があります。その道に行くことをお勧めします。

関連情報