仮想マシンの HTTP キャッシュ

仮想マシンの HTTP キャッシュ

自宅の PC で Linux 仮想マシンをいくつか実行しています。Linux の奇妙な点の 1 つは、パッケージ マネージャーを実行するたびに、構成されたソフトウェア リポジトリを「更新」しようとすることです。つまり、基本的にインターネットからファイルをダウンロードしようとするということです。VM の以前のスナップショットに戻すと、次にパッケージ マネージャーを実行すると、まったく同じデータが再度ダウンロードされます (VM 内にはもう存在しないため)。

同じデータを何度もダウンロードして帯域幅を無駄にするのはもったいないと思うので、ダウンロードしたファイルをキャッシュする HTTP プロキシ サーバーのようなものを設定する方法はないかと考えています。しかし、どうすればそれができるのか私にはわかりません。特に、VM がキャッシュが存在することを「知る」必要がないように設定する必要があります。つまり、キャッシュは透過的である必要があります。しかし、その方法がわかりません。

どのようなソフトウェアを使用する必要があるか、何かアドバイスはありますか? Windows ホスト OS で実行できればよいのですが、Linux ゲストで小さな VM を実行することも可能です...

答え1

このスライドショーDebian ベースの Linux ディストリビューション用のパッケージ キャッシュ プロキシのいくつかのソリューションについて説明します。

  • プロキシとして実行: 使用するミラーを指定し、それを唯一のミラーとして使用するようにクライアントを構成します。

    パッケージホストへのインストール:sudo apt-get install apport

  • お気に入りのバックエンドミラーを使用するように approx を設定します/etc/approx/approx.conf

    debian   http://ftp.au.debian.org
    non-US   http://ftp.au.debian.org/non-US
    security http://security.debian.org/security
    
  • approx サーバーを使用するようにクライアントを構成します。

    deb http://localcache:9999/debian stable main contrib
    deb http://localcache:9999/security stable main
    

アプトプロキシ

  • 類似商品

    インストールsudo apt-get install apt-proxy

  • お気に入りのミラーを設定します/etc/apt-proxy/apt-proxy-v2.conf:

    [debian]
    backends =
        http://ftp.au.debian.org
        http://ftp.us.debian.org
    
  • 約のようにクライアントを構成します。

    deb http://localcache:9999/debian stable main contrib
    deb http://localcache:9999/security stable main
    

これらは Linux で実行できるように設計されていますが、最小限のトラブルで Windows に移植できる可能性があります。Python がプラットフォームに依存しないことを望みますが、プログラマーはしばしば仮定を立てることがわかりました。

関連情報