Ubuntu Weekly Recipe

第315回 apt-cacher-ngを使ってAPT用キャッシュプロキシの構築

この記事を読むのに必要な時間:およそ 3 分

複数台のPCでパッケージのインストールを高速化するためにapt-mirrorを使用している,という例を見かけることがちらほらあります。APT用のキャッシュプロキシがあまり知られていないようなので,今回のレシピでは,APT用のキャッシュプロキシとapt-offlineによるオフライン環境でのインストールについて紹介します。

複数PCでのインストールを高速に行う

Ubuntu搭載のPCや仮想マシンを複数台動かしている場合は,インストールやアップデートの際に各PCで同一のパッケージをダウンロードするため,時間がかかったりネットワーク帯域を浪費しがちだったりします。クラウド環境で,数十台~数百台単位でサーバーを管理している場合ならなおさらです。そういった場合は,リポジトリのミラーを作成するか,キャッシュプロキシを利用すると,パッケージ取得が高速に行えます。

前者は,本連載の第47回でapt-mirrorによるミラーの構築を取り上げているように,完全なリポジトリのミラー(複製)を作成するため,数十~数百Gバイト単位のディスク容量が必要で,構築に時間もかかります。

このため,通常の利用であれば後者のキャッシュプロキシの利用のほうがお勧めです。キャッシュプロキシの利用では,1回ダウンロードしたパッケージを保存しておき2回目以降はそのパッケージを再利用するため,大量のディスク容量は不要で構築の時間もかからず,簡単な設定でプロキシを意識することなく利用できます。

APT用キャッシュプロキシの概要

APT用のキャッシュプロキシとしては以下のパッケージなどがあります。

  • apt-cacher
  • apt-cacher-ng
  • approx
  • squid-deb-proxy(squid-deb-proxy-client)

apt-cacherは古くからある定番パッケージです。apt-cacher-ngはapt-cacherと比べ,新しくてインタプリタ不要のため動作が軽量です。approxは過去に存在したapt-proxyとの互換性を考慮して開発されています。squid-deb-proxyは,有名なプロキシサーバーであるsquidを利用して設定を行うツールで,クライアントではZeroconfが可能で設定の手間が少なくすみます。

どのソフトウェアを選択しても良いのですが,今回はプロビジョニングツールのchef/puppetなどからの利用も多いapt-cacher-ngについて取り上げます。

apt-cacher-ngをローカル環境で試してみよう

まずは,ローカルPC上でAPT用キャッシュプロキシを構築してみましょう。以下のコマンドでapt-cacher-ngをインストールします。

$ sudo apt-get install apt-cacher-ng

インストールが完了すると,キャッシュプロキシとしてapt-cacher-ngデーモンがポート3142で実行されます。また,apt-cacher-ngによってキャッシュされるパッケージは/var/cache/apt-cacher-ng/以下に保存されます。

次に,APT用のプロキシ設定を行います。/etc/apt/apt.conf.d/02proxyなどの名前でファイルを作成し,以下の内容を書いて保存してください。保存する前に,綴り間違いや末尾のセミコロンの付け忘れがないかどうかなど,確認を行ってください。

Acquire::http::Proxy "http://127.0.0.1:3142/";

以上で設定は完了です。

では,apt-cacher-ngの動作を確認するため,任意のソフトウェアをインストールしてみましょう。

$ sudo apt-get install sl

正しく設定できていれば,/var/log/apt-cacher-ng/apt-cacher.logに時刻/入出力/サイズ/IPアドレス/ファイルパスなどのログが書き込まれているはずです。ログが書き込まれていない場合は,プロキシの設定が正しいかどうか確認したり,エラーログ/var/log/apt-cacher-ng/apt-cacher.errを確認してみてください。

$ cat /var/log/apt-cacher-ng/apt-cacher.log

図1 ログファイルapt-cacher.logの確認

図1 ログファイルapt-cacher.logの確認

apt-cacher-ngを他のPCからも利用する

他のPCから利用する場合は,他のPCの環境で,前述した⁠APT用のプロキシ設定⁠のみ行ってください。その際,⁠127.0.0.1」の箇所はapt-cacher-ngをインストールしたPCのIPアドレスに変更してください。また,ufwやiptablesなどによるパケットフィルタリングを行っている場合は,TCP/3142の通信を許可することも忘れないようにしてください。

問題なくapt-cacher-ngを使ってアップデートができているか確認するには,上記と同じくログファイルを参照してください。

著者プロフィール

黒瀬修史(くろせしゅうし)

Ubuntu Japanese TranslatorsメンバーでUbuntuをはじめ他のアプリの翻訳も幅広く行っている。最近なかなか翻訳の時間が取れないのが悩み。

コメント

コメントの記入