FreeSBIE 22006年03月13日 01時25分08秒

/usr/local/share/freesbie にビルドツールが入る。 2006 年 2 月に新しく再設計された FreeSBIE 2.0 が出てきたばかりなので、情報が古くなってしまったサイトも多く、あんまりドキュメントが無いのが少々珠に傷。

freesbie.defaults.conf を参考にして、freesbie.conf に必要最低限の設定を書くのが基本。これで、基本的な設定が出来る。launch.sh が freesbie.conf を読み込み、freesbie.defaults.conf で未設定の値を補完をする。例が書かれているので、ここが始発点。これだけでも、かなり融通が効く。

それに加えて数々の拡張機能を提供している。

LOCALDIR で launch.sh:LOCALDIR=$(cd $(dirname $0)/.. && pwd) と設定される。FreeBSD ports では、/usr/local/share/freesbie になり、ここが freesbie の基地になる。

MAKE_CONF から、make の情報が取られる。MAKE_CONF が設定されていなければ LOCALDIR の下の conf/make.conf から取られる。そのときに MINIMAL が設定されていると conf/make.conf.minimal から取られる。これが、make world/kernel に使われる。/usr/src/Makefile.inc1 に書いてあるオプションが使える。freesbie では/etc/make.conf が使われるわけではない

/usr/local/share/freesbie にある Makefile は script 以下の shell script の起動順を制御する。細かい操作は script 以下に配置されている。script/launch.conf が名前の示す通り起動の基。これを通して、script の下に配置されているスクリプトを起動する。このスクリプトは scripts/custom に同名のスクリプトを置くことで、FreeSBIE の提供するスクリプトの変わりに利用することが出来る。custom のディレクトリの位置も SCRIPTS_OVERRIDE を指定しておくことで、違う場所に置くことが出来る。

KERNELCONF が設定されていると、buildkernel にそれが利用される。無い場合は LOCALDIR の中にある各 arch に対応する FREESBIE が利用される。CD 起動用に GENERIC とは違ったオプションが設定されているので、自分でカーネルを作る場合は注意をした方がいい。

ports/packages は freesbie を実行するシステムに入っている物を利用して package を作り、インストールするので、image に入れたいものはあらかじめインストールしておく必要がある。なお、package システムはインストールしてある設定ファイルを基に package ファイルを作るので、自前で変更してある分も一緒に取り込まれることになる。

これだけ、知っていれば自分の用途に合わせて、かなり自由に CD を作れるはず。

FreeSBIE 2 は、とても上手に書かれたシステムである。FreeBSD の make world/kernel と ports の仕組みをよく理解し、上手に利用している。それに加えて、make と shell script もそれぞれの特徴を生かし、書き方もとてもこなれて、きれいに FreeBSD のシステムと融合している。shell script の書き方もうまい。