Ubuntu で apt-cacher-ng を導入しパッケージキャッシュサーバーを構築する

【概要】この記事では、Ubuntu環境において、aptパッケージのキャッシュサーバーソフトウェア「apt-cacher-ng」を導入する手順を解説します。apt-cacher-ngを利用することで、特に複数台のUbuntuマシンが存在する環境において、aptパッケージダウンロード時のネットワーク帯域を節約し、ダウンロード時間の短縮が期待できます。本記事では、apt-cacher-ngのインストールコマンドと、サーバーとして機能させるために最低限必要なファイアウォール設定、そしてクライアント側の設定について説明します。

はじめに

この記事の手順は、管理者権限 (`sudo`) を持つユーザーで実行することを前提としています。また、ファイアウォールとしてUFW (Uncomplicated Firewall) が有効になっている環境を想定しています。

apt-cacher-ng のインストール

まず、パッケージリストを最新の状態に更新します。

sudo apt -y update

次に、apt-cacher-ng パッケージをインストールします。`-y` オプションを使用すると、確認プロンプトなしでインストールが実行されます。

sudo apt -y install apt-cacher-ng

ファイアウォール設定 (UFW)

apt-cacher-ng は、デフォルトでTCPポート 3142 を使用してクライアントからの接続を待ち受けます。UFW (Uncomplicated Firewall) を使用している場合、このポートへのアクセスを許可する必要があります。

sudo ufw allow 3142/tcp

これにより、他のマシン(クライアント)からこのサーバー上の apt-cacher-ng サービスへTCPプロトコルで接続できるようになります。`sudo ufw allow 3142` のようにポート番号のみを指定すると、TCPとUDPの両方が許可される場合がありますが、通常aptの通信にはTCPのみで十分です。

クライアントの設定

apt-cacher-ng サーバーを利用するには、キャッシュを利用したいクライアント側のUbuntuマシンで設定が必要です。`/etc/apt/apt.conf.d/` ディレクトリ内に、プロキシ設定ファイル(例: `02proxy`)を新規に作成し、以下の内容を記述します。


Acquire::http { Proxy "http://<apt-cacher-ngサーバーのIPアドレス>:3142"; };

`` の部分は、apt-cacher-ng をインストールしたサーバーの実際のIPアドレスまたは解決可能なホスト名に置き換えてください。

この設定を行った後、クライアントマシンで `sudo apt update` などを実行すると、apt-cacher-ng サーバーを経由してパッケージ情報やパッケージファイルがダウンロードされるようになります。

動作確認と管理

apt-cacher-ng が正常に動作しているか、またキャッシュの状況を確認するには、Webブラウザから以下のURLにアクセスします。


http://<apt-cacher-ngサーバーのIPアドレス>:3142/acng-report.html

この管理ページでは、キャッシュヒット率やダウンロードされたパッケージの統計情報などを確認できます。