それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

local apt mirror(apt-cacher-ng) を使って debian/ubuntu インストールを早くする

仮想マシンをインストールしていると、aptの通信ロスが時間ロスになって気になった。

1分程度だけど、何度も実行してると疲れてくるので、apt-cacher-ngを使うことにした。

apt-cacher-ng をdocker で起動する

---
version: '2'
services:
  apt-cacher:
    container_name: proxies-apt-cacher
    image: sameersbn/apt-cacher-ng
    ports:
    - 3142:3142

docker-compose で起動する

sudo docker-compose pull
sudo docker-compose up

apt に設定して使う場合

echo 'Acquire::HTTP::Proxy "http://172.17.0.1:3142";' |sudo tee  /etc/apt/apt.conf.d/01proxy

名前解決ができる場合。

echo 'Acquire::HTTP::Proxy "http://apt-cacher.lan";' |sudo tee  /etc/apt/apt.conf.d/01proxy

preseedで使う場合

preseed.cfg に次のとおりに記載する。(ip は環境依存)

d-i mirror/country string manual
d-i mirror/http/hostname string debian-mirror.sakura.ne.jp
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string http://172.17.0.1:3142

使ってみた結果

ローカルホストでミラーは速いですよね。やっぱり。ボトルネックは純粋にディスクIOだけになった。

docker で作ったapt-cacher-ngの場合、apt-cacherのまれなエラーで自動処理が止まることがある。

proxies-apt-cacher | [warn] Epoll ADD(1) on fd 12 failed. Old events were 0; read change was 1 (add); write change was 0 (none); close change was 0 (none): Bad file descriptor

apt-cacher-ng は概ね良好に起動するが、まれにエラーが出て、APTパッケージの取得に失敗する。再度トライすれば問題なくインストールが終わる。

手作業でインストールするときはもんだ無いが、完全無人だと気づかずにインストールが死ぬので、問題が多い。

無人インストールでapt-cacherを使うなら、手作業で初回キャッシュさせたほうが無難かもしれない。

apt-cache-ng は単なるプロキシ

ちょっと変わったプロキシなので、ubuntu/debian だけでなく、cygwincentos(yum)でも使えるので、ローカルや組織内に1つくらいあってもいいかもしれない。

指定の仕方 インストール済み

ubuntu の場合、ここでインストールで指定することもできる

指定の仕方 インストール済み

echo 'Acquire::HTTP::Proxy "http://172.17.0.1:3142";' >> /etc/apt/apt.conf.d/01proxy

過去の関連記事

apt-cacherで docker buildを速くする - それマグで!