この章では Live システムのビルドに使う3つの主要ツール live-build、live-boot、live-config の概要をまとめています。
live-build は Live システムをビルドするためのスクリプト集です。収録されているスクリプトは「コマンド」としても言及されています。
live-build の背景となる考え方は、設定ディレクトリを使って Live イメージのビルドに関するあらゆる面を完全に自動化、独自化するフレームワークにしようということです。
その多くの概念は debhelper で Debian パッケージをビルドするのと同様です:
● スクリプトには操作を制御するために中心となる位置があります。debhelper ではパッケージツリーの debian/ サブディレクトリがこれにあたります。例えば dh_install は、他にもありますが、debian/install というファイルを探して特定のバイナリパッケージに収録すべきファイルを判断します。ほぼ同様に live-build は設定全体を config/ サブディレクトリ以下に保管します。
● スクリプトは独立しています - つまり、各コマンドの実行は常に安全です。
debhelper とは異なり、live-build は設定ディレクトリの骨格を生成するツールを提供しています。これは dh-make 等のツールに似ていると言っても良いでしょう。こういったツールのさらなる情報については、この節の残りで最も重要な4つのコマンドについて触れているので続きを読んでください。各コマンドで先行している lb は live-build コマンドのラッパーであることに注意してください。
● lb config: Live システム設定ディレクトリの初期化を担当します。さらなる情報については lb config コマンド を見てください。
● lb build: Live システムのビルドの開始を担当します。さらなる情報については lb build を見てください。
● lb clean: Live システムでビルドされた部分の掃除を担当します。さらなる情報については lb clean コマンド を見てください。
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 を引数無しで使うのが適切でしょう (詳細は{設定管理}#managing-a-configuration 参照)。
通常はオプションをいくらか指定します。例えばイメージのビルド時に利用するパッケージマネージャーを指定する場合:
$ 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 ユーザの自動ログイン等のタスクを処理します。
License: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-3 file.
≅ SiSU Spine ፨ (object numbering & object search)
(web 1993, object numbering 1997, object search 2002 ...) 2024