
私たちのソフトウェア スタックには、RPM パッケージの特定のバージョンが必要です。残念ながら、これらのパッケージの一部は、メンテナーがアーカイブを保持していないため (EPEL、Percona など)、時間の経過とともに非推奨となり、リポジトリから削除されます。
これは構成管理の問題です。新しいマシンを古いマシンと同じソフトウェアでプロビジョニングすることを確実にしたいのです (Puppet を使用します)。
標準的な解決策としては、独自に設定したプライベート YUM リポジトリでこれらのパッケージをホストすることだと思います。これは、ソースからコンパイルする必要があるパッケージにも役立ちます。
私の質問は次のとおりです:すべてのエージェントがそこからパッケージをダウンロードし、リポジトリ サーバーが外部の元のソースからパッケージをダウンロードしてローカルにキャッシュするような、Yum リポジトリ サーバーへの「プロキシ ツール」をご存知ですか? (元のリポジトリからパッケージが消えた場合に備えて)
Java の世界からの類似例としては、Maven リポジトリ サーバーである Archiva が挙げられますが、これを使用してパブリック リポジトリへのリクエストをプロキシし、ローカルにキャッシュすることもできます。
OS: Centos6.4
ありがとう
答え1
は、この目的に最適なツールだと思いますmrepo
。アップストリーム リポジトリを指定すると、ローカルにミラーリングされます。設定オプションlftp-cleanup = no
、rhnget-cleanup = no
などにより、アップストリームでパッケージが削除されたときに、ローカル ミラーからパッケージが削除されるのを防ぐことができます。
答え2
必要な特定の RPM バージョンをダウンロードします。必要なパッケージのみを含む独自のローカル リポジトリを作成します。クライアントに新しいローカル リポジトリを指示します。期待どおりに動作しないパブリック リポジトリの使用は停止します。
開始するには:
yum -y install createrepo && man createrepo