debootstrap
は最低限のDebian環境の作成に使われるツール。pbuilder
やcowbuilder
(とその環境を使うpiuparts
)などのツールの裏側でも動くし、docker
イメージの裏側もコイツ。ちなみに環境構築にはリポジトリから必要なパッケージを取得してくるので、それなりに時間がかかる(しかも最初はapt
も使えないのでwget
で取得するんだぜ?)。うーむ。
で、どうやって時間を短縮するか?というと、以下のような選択肢がある。
ftpsync
使おうね。他のツールはダメダメ。squid
などのサーバーを立てるやり方。
debootstrap 1.0.96
からsquid-deb-proxy-client
をインストールしておくと、squid-deb-proxy
で立ち上げたプロキシサーバーを自動的に参照するようになる。apt-cacher
などだと一々プロキシがどこにあるのかを指定しないといけないので、squid-deb-proxy
マジおすすめ--cache-dir
オプションを使って、適当なところにキャッシュしておいたdebパッケージを参照するやり方。`
debootstrap 1.0.97
から実装済み。一台だけでやるならこれで十分。--cache-dir=/home/henrich/tmp/cachedir
というように、このオプションでは絶対パスで参照するのが必要。~/tmp/cachedir
の様な指定はできない。あと、リポジトリのミラーはdebootstrap 1.0.85
からdeb.debian.orgを参照するようになっている。これはFastly提供のCDNだけど、個人的には自分が運用しているdebian-mirror.sakura.ne.jpを使っている。これは異常があったらすぐ気付くように、というドッグフーディングの側面もあるが、利用者がそんなに多くないので快適だということもある。もっと使っていいのよ?
最後に、記述時の最新であるdebootstrap 1.0.112
はMr.FAIことThomas Lange
さんのハックによってパッケージ依存関係の最適化(これもapt
が使われてはいない)が図られているので、随分と時間が短縮されている。
結論:debootstrap 1.0.112以降を使おう。debootstrap
はshell script+embedded perlコードというアレなやつなので、環境依存が極小であり、どのバージョンでも動くよ。バグがあったら教えてくださいな。