|
|
|
|
|
この章では Live システムのビルドに使う3つの主要ツール live-build、live-boot、live-config の概要をまとめています。
live-build は Live システムをビルドするためのスクリプト集です。収録されているスクリプトは「コマンド」としても言及されています。
live-build の背景となる考え方は、設定ディレクトリを使って Live イメージのビルドに関するあらゆる面を完全に自動化、独自化するフレームワークにしようということです。
その多くの概念は debhelper で Debian パッケージをビルドするのと同様です:
debhelper とは異なり、live-build は設定ディレクトリの骨格を生成するツールを提供しています。これは dh-make 等のツールに似ていると言っても良いでしょう。こういったツールのさらなる情報については、この節の残りで最も重要な4つのコマンドについて触れているので続きを読んでください。各コマンドで先行している lb は live-build コマンドのラッパーであることに注意してください。
live-build で説明しているように、live-build を構成するスクリプトは config/ という名の単一のディレクトリから source コマンドで指定された設定を読み込みます。このディレクトリを手作業により構成するのは時間がかかる上に誤りの元となりやすいため、lb config コマンドを使って初期設定ツリーの骨格を作成できるようになっています。
引数を付けずに lb config を実行すると config/ サブディレクトリを作成してデフォルト設定がいくらか指定された設定ファイルを配置し、auto/ 及び local/ という骨格となる2つのツリーを作成します。
$ lb config
[2015-01-06 19:25:58] lb config
P: Creating config tree for a debian/stretch/i386 system
P: Symlinking hooks...
とても基本的なイメージを必要とするユーザや後で auto/config を使ってもっと全面的な設定を行おうと考えている場合は lb config を引数無しで使うのが適切でしょう (詳細は 設定管理 参照)。
通常はオプションをいくらか指定します。例えばイメージのビルド時に利用するパッケージマネージャーを指定する場合:
$ lb config --apt aptitude
多数のオプションを指定することもできます:
$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...
利用可能なオプションの全容は lb_config man ページにあります。
lb build コマンドは config/ ディレクトリから設定を読み込みます。それから Live システムのビルドに必要な低レベルコマンドを実行します。
ビルドによる様々な生成物を削除するのは lb clean コマンドの役目で、それによりその後のビルドがきれいな状態から始められるようになります。デフォルトで chroot、バイナリ、ソースの段階が対象となりますが、キャッシュはそのまま残されます。また、個々の段階を個別に掃除することもできます。例えばバイナリ段階にのみ影響のある変更を加えた場合は新しいバイナリをビルドする前に lb clean --binary を実行します。変更がパッケージ収集やパッケージのキャッシュを無効化するようなもの、例えば --mode や --architecture、--bootstrap を変更した場合は lb clean --purge を実行しないといけません。オプションの全容については lb_clean man ページを見てください。
live-boot は live-build 等により作成される Live システムのブート時に利用する initramfs の生成に利用する initramfs-tools のフックを提供するスクリプト集です。Live システムのISOやネットワーク経由のブートに利用するtarアーカイブ、USBメモリ向けイメージも対象です。
ブート時にはルートファイルシステム (squashfs のような圧縮ファイルシステムのイメージであることが多い) が保存されている /live/ ディレクトリを収録する読み取り専用メディアを探します。見つかった場合は Debian 類似システムでそのメディアからブートできるように、aufs を使って書き込み可能な環境を作成します。
Debian の初期RAMファイルシステムについてのさらなる情報は ‹http://kernel-handbook.alioth.debian.org/› にある Debian Linux カーネルハンドブックの initramfs の章にあります。
live-config はブート時に live-boot の後に実行して Live システムを自動的に設定するためのスクリプト集で構成されています。ホスト名やロケール、タイムゾーンの設定や live ユーザの作成、cron ジョブの抑制、live ユーザの自動ログイン等のタスクを処理します。