オンデマンド RPM ミラーを作成する方法

オンデマンド RPM ミラーを作成する方法

ローカル ネットワーク上に Fedora パッケージ用の RPM リポジトリを作成したいと考えています。ストレージの制限があるため、リポジトリは最初は空にしておき、アクセスされたらパッケージをダウンロードするようにしたいと考えています。

背景

私はローカル VM をよく使用します。新しい VM を作成して Fedora をインストールするたびに、インターネットから多数のパッケージがダウンロードされますが、ダウンロードされるパッケージのほとんどは同じものです。プロセスを高速化するには、同じネットワーク上にあるサーバーに RPM をキャッシュしたいと思います。

createrepo同様の質問には、 &の組み合わせで回答されています。一部のパッケージだけが必要な場合に、リポジトリ全体を事前にクローンしたくないので、reposyncこの部分は気に入りません。reposync

理想的なソリューション

ローカル ネットワーク上のサーバーを、Fedora インストール用の RPM リポジトリとして機能させたいと思います。 で設定されているメタデータをパススルーする必要があります/etc/yum.repo.d/*。サーバーは、要求された RPM がローカル キャッシュに存在する場合はそれを配信し、存在しない場合はダウンロードしてから配信する必要があります。

それほど野心的ではないアプローチとしては、代わりに単一の RPM リポジトリを構成しhttps://mirrors.fedoraproject.org/...、http プロキシを使用するというものがあります。

更新日: 2015年11月2日

すでにネットワーク上で nginx が動作しているので、proxy_passとの組み合わせを試してみましたproxy_cache。 一応は動作しますが、私見では利点よりも欠点の方が多いです。

  • で構成されたリポジトリごとに個別の構成/etc/yum.repo.d/*
  • 代替ミラーのため、metadataからは使用できません。https://mirrors.fedoraproject.org/

squidコメントで提案されているように、nginx を削除して をインストールしました。squid私にとってはstore_id_programうまく機能しています。 この構成では、RPM が元々どこから来たかに関係なく、代替ミラーを使用してキャッシュにアクセスすることもできます。

答え1

ここでは、rpm キャッシュ用に微調整された squid.conf を見つけることができます。

https://github.com/spacewalkproject/spacewalk/blob/master/proxy/installer/squid.conf

メモリとポートの設定を変更するだけで済みます。

答え2

これに対する良い解決策が見つかったかどうかはわかりませんが、私は結局、簡単な Go プログラムを書きました。これはキャッシュ プロキシとして機能し、RPM を保持しますが、データベース ファイルの上流にプロキシするため、常に正確です。現時点では、CentOS、Fedora EPEL、および Arch Linux 用に構成されています。

こちらからご覧いただけますhttps://github.com/yobert/remirror

答え3

apt-cacher-ngうまく機能します。私たちはこれを何度か使用していますが、問題なく動作しています。また、これをより効率的に使用するには、http ミラーのみ (https ミラーは使用しない) を使用することを忘れないでください (当然、https トラフィックを表示およびキャッシュすることはできません)。

&protocol=httpfedora 公式リポジトリを http ミラーのみを使用するように設定するには、設定 URLの末尾に追加しますmetalink。たとえば、fedoraリポジトリの場合は次のようになります。

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch&protocol=http

https://www.unix-ag.uni-kl.de/~bloch/acng/

キャッシュ プロキシ。Linux ディストリビューターのパッケージ ファイルに特化しており、主に Debian (および Debian ベース) ディストリビューションを対象としていますが、これに限定されるものではありません。Apt-Cacher のドキュメントを参照して、その利点を確認してください。

答え4

Yum wikiには以下のページが含まれていますキャッシュソリューションのレビュー

話題の一部:

  • インストール "インテリジェントミラー「」に登録してミラーマネージャー

    Pros
        Zero configuration, on the client side.
        Post setup it mostly just works and everything should be immediate.
        Only downloads what is required by the users.
        Fully automated server side, once setup/working. 
    Cons
        Requires setting up a local Squid + Apache-httpd + IntelligentMirror to serve the data.
        If the server is down then metalinks/MM will route you to an external mirror.
        Only intelligently caches packages, not metadata. 
    
  • (ベータ) avahi-packages-server.py および yum avahi サポート (参照:http://james.fedorapeople.org/yum/avahi

    Pros
        Zero configuration client.
        Zero configuration server.
        Only downloads what is required by the users. 
    Cons
        Not upstream yet (still beta).
        A client that doesn't run the avahi server side doesn't share it's downloads (so all clients need to run the "server").
        Requires working avahi on the network. 
    

関連情報