以前のバージョンの Debian パッケージがパッケージリポジトリから消えるのはなぜですか? (バージョン管理システム構成との関連性が高い)

以前のバージョンの Debian パッケージがパッケージリポジトリから消えるのはなぜですか? (バージョン管理システム構成との関連性が高い)

シナリオ:Puppet、Chefなど、バージョン管理ベースのシステム構成で特定のシステム状態を再現する必要があります。これは、システムパッケージのバージョンを明示的に指定することによって行われます。

最近、Debian リポジトリで特定のパッケージバージョンが欠落している問題が発生しました。たとえば、バージョン2.7.5-1 + deb9u1には「パッチ」パッケージが必要ですが、2.7.5-1 + deb9u2のみを使用できます。別のより深刻な例:「linux-headers-4.9.0-9-common」が必要であり(関連カーネルのインストールのため)、「linux-headers-4.9.0-11-common」のみを使用できます。

これにより、システムの特定の状態を再現することができなくなります。

上記のパッケージは(私が実際に触れた)例に過ぎません。私は一般的な問題の理解と解決に興味があります。

このように更新され、「消える」パッケージとパッケージバージョンの背後に隠れているアイデアは何ですか?

以前のバージョン(実際には以前のバージョンではなく数週間前のバージョン)のDebianパッケージをどこで入手できますか?一般的な方法でインストールプロセスを自動化できるはずです。

ベストアンサー1

特定の設定を正確なバージョンまで再現する機能は次のとおりです。あなたのDebianの要件ではなく、要件です。

Debian は、特定のバージョンで各バイナリパッケージの単一バージョンのみをサポートします。これとは対照的に、特定のバージョンのパッケージの更新によって回帰が発生しないように注意し、これが不可能な場合はこれを記録してください。特定のパッケージの複数のバージョンを維持すると、サポートの負担とテスト要件のみが増加します。たとえば、パッケージマネージャは現在サポートされているバージョンだけでなく、利用可能なすべてのバージョンのライブラリに対して更新されたパッケージをテストする必要があります。つまり重要なバグ(セキュリティ問題を含む)を修正してください。カーネルの場合、これは時々カーネルABIが変更されることを意味するので、ABIをハードコーディングする代わりに(依存パッケージを強制的に再構築するために)いくつかのメタデータをlinux-image-amd64導入linux-headers-amd64することができます。パッケージ。

しかし、あなたの状況に対処する方法があります。公開されたすべてのソースコードとバイナリパッケージは、次の場所に保存されます。snapshot.debian.org。バージョン指定された設定を作成するときは、次のいずれかのスナップショットを選択できます。2019年9月のスナップショット)これをリポジトリURLとして使用します。

deb https://snapshot.debian.org/archive/debian/20190930T084755Z/ buster main

最終的にこれに依存する場合は、次のような一種のキャッシュミラーを使用してください。適切 - CacherNG。これにより、スナップショットサーバーの負荷が軽減されるだけでなく、必要なすべてのパッケージのローカルコピーが得られます。

(関連状況源泉パッケージはより複雑で、ライセンスの依存関係のため、アーカイブには特定のバージョンの一部のソースパッケージの複数のバージョンが含まれています。しかし、これとは何の関係もありません。厳密に言えば、Debian はサポートされているリリースでいくつかのバイナリの複数のバージョンを提供します。現在のポイントリリースの現在のバージョンとセキュリティストアのアップデートと、次のリリースポイントのアップデートストアを折りたたみます。したがって、リリースされるたびにポイントバージョンを更新する限り、スナップショットを使用せずに反復可能なバージョン管理システム構成を維持できます。 )

おすすめ記事