Live manual Debian Live

# Debian Live Manual

# ツールの概要

286

# 5. ツールの概要

287

この章では Live システムのビルドに使う3つの主要ツール live-build、live-boot、live-config の概要をまとめています。

288

5.1 live-build パッケージ

289

live-build は Live システムをビルドするためのスクリプト集です。収録されているスクリプトは「コマンド」としても言及されています。

290

live-build の背景となる考え方は、設定ディレクトリを使って Live イメージのビルドに関するあらゆる面を完全に自動化、独自化するフレームワークにしようということです。

291

その多くの概念は debhelper で Debian パッケージをビルドするのと同様です:

292

- スクリプトには操作を制御するために中心となる位置があります。debhelper ではパッケージツリーの `debian/` サブディレクトリがこれにあたります。例えば dh_install は、他にもありますが、`debian/install` というファイルを探して特定のバイナリパッケージに収録すべきファイルを判断します。ほぼ同様に live-build は設定全体を `config/` サブディレクトリ以下に保管します。

293

- スクリプトは独立しています - つまり、各コマンドの実行は常に安全です。

294

debhelper とは異なり、live-build は設定ディレクトリの骨格を生成するツールを提供しています。これは dh-make 等のツールに似ていると言っても良いでしょう。こういったツールのさらなる情報については、この節の残りで最も重要な4つのコマンドについて触れているので続きを読んでください。各コマンドで先行している `lb` は live-build コマンドのラッパーであることに注意してください。

295

- lb config: Live システム設定ディレクトリの初期化を担当します。さらなる情報については lb config コマンド を見てください。

296

- lb build: Live システムのビルドの開始を担当します。さらなる情報については lb build を見てください。

297

- lb clean: Live システムでビルドされた部分の掃除を担当します。さらなる情報については lb clean コマンド を見てください。

298

5.1.1 `lb config` コマンド

299

live-build で説明しているように、live-build を構成するスクリプトは `config/` という名の単一のディレクトリから `source` コマンドで指定された設定を読み込みます。このディレクトリを手作業により構成するのは時間がかかる上に誤りの元となりやすいため、`lb config` コマンドを使って初期設定ツリーの骨格を作成できるようになっています。

300

引数を付けずに `lb config` を実行すると `config/` サブディレクトリを作成してデフォルト設定がいくらか指定された設定ファイルを配置し、`auto/` 及び `local/` という骨格となる2つのツリーを作成します。

301

$ lb config
[2015-01-06 19:25:58] lb config
P: Creating config tree for a debian/stretch/i386 system
P: Symlinking hooks...

302

とても基本的なイメージを必要とするユーザや後で `auto/config` を使ってもっと全面的な設定を行おうと考えている場合は `lb config` を引数無しで使うのが適切でしょう (詳細は 設定管理 参照)。

303

通常はオプションをいくらか指定します。例えばイメージのビルド時に利用するパッケージマネージャーを指定する場合:

304

$ lb config --apt aptitude

305

多数のオプションを指定することもできます:

306

$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...

307

利用可能なオプションの全容は `lb_config` man ページにあります。

308

5.1.2 `lb build` コマンド

309

`lb build` コマンドは `config/` ディレクトリから設定を読み込みます。それから Live システムのビルドに必要な低レベルコマンドを実行します。

310

5.1.3 `lb clean` コマンド

311

ビルドによる様々な生成物を削除するのは `lb clean` コマンドの役目で、それによりその後のビルドがきれいな状態から始められるようになります。デフォルトで `chroot`、`バイナリ`、`ソース`の段階が対象となりますが、キャッシュはそのまま残されます。また、個々の段階を個別に掃除することもできます。例えばバイナリ段階にのみ影響のある変更を加えた場合は新しいバイナリをビルドする前に `lb clean --binary` を実行します。変更がパッケージ収集やパッケージのキャッシュを無効化するようなもの、例えば `--mode` や `--architecture`、`--bootstrap` を変更した場合は `lb clean --purge` を実行しないといけません。オプションの全容については `lb_clean` man ページを見てください。

312

5.2 live-boot パッケージ

313

live-boot は live-build 等により作成される Live システムのブート時に利用する initramfs の生成に利用する initramfs-tools のフックを提供するスクリプト集です。Live システムのISOやネットワーク経由のブートに利用するtarアーカイブ、USBメモリ向けイメージも対象です。

314

ブート時にはルートファイルシステム (squashfs のような圧縮ファイルシステムのイメージであることが多い) が保存されている `/live/` ディレクトリを収録する読み取り専用メディアを探します。見つかった場合は Debian 類似システムでそのメディアからブートできるように、aufs を使って書き込み可能な環境を作成します。

315

More information on initial ramfs in Debian can be found in the Debian Linux Kernel Handbook at ‹https://kernel-team.pages.debian.net/kernel-handbook/› in the chapter on initramfs.

316

5.3 live-config パッケージ

317

live-config はブート時に live-boot の後に実行して Live システムを自動的に設定するためのスクリプト集で構成されています。ホスト名やロケール、タイムゾーンの設定や live ユーザの作成、cron ジョブの抑制、live ユーザの自動ログイン等のタスクを処理します。