そんなこんなでChromeOSのビルドがさくっとできたら、やってしまおうとやり始めた。環境はUbuntu 9.04。
http://build.chromium.org/buildbot/archives/chromiumos-0.4.22.8.tar.gz
をダウンロードして、展開、中のスクリプトを実行してみると、「debootstrapをインストールするが良いか」のメッセージとパスワード要求。パスワードを入力するとインストールが行われた。
debootstrapとはubuntuが元にしているdebianというディストリビューションが持つプログラムであり、滅菌環境を作り出すことができる。
debianの特徴としてパッケージ管理システムがある。パッケージにはプログラムがバイナリの状態で含まれ、ソースコードは付属しない。であるが、GPLであるためビルドは行えるようにソースコードは配布されており、簡単にソースからのビルドが行える。ソースに変更を施したビルドも簡単に行える。
このパッケージのビルドする環境というものは、必要とするライブラリのインストールも必要とする。例えばlibzなどだ。時には自身がインストールしているライブラリとは別のライブラリを必要とする環境へのパッケージを製作したい場合がある。こうしたときは自身のライブラリをアンインストールして、開発に必要なライブラリをインストールする必要があり、不具合が生じる可能性もある。またライブラリ同士が干渉を起こしてライブラリパッケージをインストールできない場合も存在する。
こうした環境の破綻を防ぐために、仮想の環境を作り出すことを目的としたのがdebootstrapだ。
debootstrapは、あるディレクトリにあるディストリビューション、例えばdebianであれば、testやunstableなどのバージョンを構成することが出来る。手法はパッケージ管理システムと同様に、必要とするパッケージのダウンロードと展開であり、これによって作り出された環境は余分なものを持たない、滅菌環境となる。正式な配布パッケージでは、この滅菌環境下において、必要ライブラリパッケージのダウンロードおよびビルドを含んだ一連の動作に成功することが必要となる。この滅菌環境を利用するにはchrootというchange root/の意味を持つコマンドを利用する。
debootstrapは取得するレポジトリを選択することができる。そのため、Chrome OSの開発レポジトリからパッケージを取得して、ビルド環境を整えているのだろうと予想する。debootstrapを利用して、誰でも環境を汚さずにビルドできるものを用意するあたりGoogleらしいと思わされる。こうした仕事は、おそらくは、簡単にビルド(変更)できる環境であるかどうかによって、練度が違ってくるのだろう。
ということで、debootstrapが終わったようなのでここまで。