揮発性のメモ2

http://d.hatena.ne.jp/iww/

mmdebstrapで小さいrootfsを作る

mmdebstrapは、debootstrapよりももっと小さいchroot環境をつくれるすごいやつ

基本的な使い方

SYNOPSIS
    mmdebstrap [OPTION...] [*SUITE* [*TARGET* [*MIRROR*...]]]


一応はこれで普通に作れる

mmdebstrap buster unko http://ftp.jp.debian.org/debian/

うちでは最終的にこうなった

mmdebstrap --variant=apt \
           --dpkgopt='path-exclude=/usr/share/man/*' \
           --dpkgopt='path-exclude=/usr/share/doc/*' \
           --dpkgopt='path-exclude=/usr/share/locale/*' \
           --dpkgopt='path-include=/usr/share/doc/*/copyright' \
           --include=tree,jq \
           buster unko http://ftp.jp.debian.org/debian/



SUITE

スイート、スイーツ名。 メジャーバージョンの名前。 stableとかtestingとかいうやつ。
busterとかsidとか、ubuntuならBionicとかメジャーバージョンに振られた名前は コード名 というらしい。
スイート名とコード名は大差ないのでここでも buster を指定できる。
というか、時代によってコロコロ変わる以上 stable とか指定するのはやめた方が良いと思う。

TARGET

作成するディレクトリ。 勝手に作ってくれるけど、もうあるなら空にしておく必要がある

MIRROR

aptするディレクトリ。 最近のバージョンなら指定しなくても作れるけど、なんとなく書いといた方がいい気がする。
古いやつを作るときは http://archive.debian.org/debian/ を指定する

OPTION

たぶんよく使うのは次の3つだと思う。

--variant
最初にapt installするおすすめセット。
variant名 説明 サイズ感
essennsial 一番小さいセット。 aptなし
apt等と関連ライブラリが無い
76MB
apt essensialにapt等を入れた分
これが基本でいいと思う
95MB
minbase さらにe2fsprogs, mount, tzdataが入ってる
tzdataは必要かも
101MB

armhfでのサイズ感は上表の感じ。 あとはマニュアルを読む

--dpkgopt
dpkgに渡すオプション

ここでは指定ディレクトリのファイルを削除するとかしないとかのオプションしか使ってない。詳細はマニュアルを読む

           --dpkgopt='path-exclude=/usr/share/man/*' \
           --dpkgopt='path-exclude=/usr/share/doc/*' \
           --dpkgopt='path-exclude=/usr/share/locale/*' \
           --dpkgopt='path-include=/usr/share/doc/*/copyright' \

これをやると、 apt の場合95MBだったのが52MBまで減る。

--include
ついでにapt install するパッケージ

カンマで区切って書く。
あとで自分でchrootしてからapt installしてもいいけど、後入れの分はmanとかも少し入っちゃうのでちょっともったいない。

後からapt installするとき

chrootしてからaptコマンド使うと、/varの下にパッケージのリストとか残って無駄に容量を食うので、後始末をちゃんとする

apt clean
rm -rf /var/lib/apt/lists

/var/lib/apt/listsをうっかり削除 - 揮発性のメモ2




参考
manpages.debian.org
gihyo.jp
debimate.jp