|
|
|
|
|
この章では live-build ソフトウェアと Live イメージ自体の両方について、最初の作成から継続的な改訂、継続的なリリースを通して Live 設定を管理する方法を説明します。
Live 設定が最初の試行で全て上手くいくのはまれです。一度だけビルドするのならコマンドラインから lb config オプションを渡すだけで済むかもしれませんが、満足のいくまでオプションを改訂してビルドを繰り返す方が標準的です。そうした変更を支援するには設定を確実に一貫した状態に保つ自動化スクリプトが必要となるでしょう。
lb config コマンドに渡されたオプションはされている他の多数のオプションと共にデフォルト値として config/* ファイルに保管されます。その後に lb config を実行した場合最初のオプションを基にしてデフォルトのオプションはリセットされません。そのため、例えば --binary-images に新しい値を指定して再び lb config を実行した場合以前指定していた種類のイメージに依存しているオプションのデフォルト値は新しく指定した種類のイメージでは使えなくなるかもしれません。そのファイルが読み取りや変更の対象からも外れているかもしれません。これを使うと100以上のオプションの値を保管するため、実際に指定されたオプションを誰でも確認できます。最後に、lb config を実行した後に live-build をアップグレードして、オプションの名前が変更されていた場合、config/* には古いオプションが有効ではなくなった後に名付けられた変数も収録されます。
以上に挙げた理由により auto/* スクリプトにより楽が出来るようになります。このスクリプト群は lb config や lb build、lb clean コマンドの単純なラッパーで、設定の管理を支援するように設計されています。auto/config スクリプトは lb config コマンドと希望したオプションを全て保管し、auto/clean スクリプトは設定用変数値を収録するファイルを削除し、auto/build スクリプトは各ビルドの build.log を維持します。このスクリプト群はそれぞれ対応する lb コマンドの実行時に自動的に実行されます。このスクリプト群を利用することで設定が見やすくなり、改訂を越えて内部的に一貫した状態が維持されます。また、更新された文書を読んだ後に live-build をアップグレードすれば変更の必要があるオプションを識別、修正するのははるかに容易になるでしょう。
便宜のため live-build には例の自動化シェルスクリプトが付属していてコピーして編集できるようになっています。デフォルトの設定を新しく作成してから例をコピーしましょう:
$ mkdir mylive && cd mylive && lb config
$ mkdir auto
$ cp /usr/share/doc/live-build/examples/auto/* auto/
auto/config を編集して、希望に合わせてオプションを追加します。例えば:
#!/bin/sh
lb config noauto \
--architectures i386 \
--linux-flavours 686-pae \
--binary-images hdd \
--mirror-bootstrap http://ftp.ch.debian.org/debian/ \
--mirror-binary http://ftp.ch.debian.org/debian/ \
"${@}"
これで、lb config を使うたびに auto/config がそのオプションを基にして設定をリセットします。オプションを変更したいときには lb config に渡すのではなくこのファイルに書かれているものを編集します。lb clean を使うと auto/clean は config/* ファイルを、ビルドした他のものとあわせて削除します。最後に、lb build を使うとビルド時のログは auto/build により build.log に書かれます。
注意: ここで特別な noauto パラメータを使い、auto/config を別に呼び出すことのないようにして無限再帰を回避しています。編集時に不注意で削除することのないようにしてください。また、読みやすくするために上記の例で示したように lb config コマンドを複数行に分割する場合は次の行に続く各行末のバックスラッシュ (\) を忘れることのないようにしてください。
lb config --config オプションを使って Live システムの設定を収録しているGitリポジトリを複製します。Live Systems Projectにより保守されている設定を基にしたい場合は ‹http://live-systems.org/gitweb/› の Packages カテゴリーの live-images という名前のリポジトリに目を通してみてください。このリポジトリには Live システムの ビルド済みイメージ 用の設定を収録しています。
例えば標準的なイメージをビルドするには live-images リポジトリを使って
$ mkdir live-images && cd live-images
$ lb config --config git://live-systems.org/git/live-images.git
$ cd images/standard
のようにし、必要に応じて auto/config やその他 config ツリーにあるものを必要なだけ編集します。例えば非公式の non-free ビルド済みイメージは単純に --archive-areas "main contrib non-free" を追加することで作成されます。
オプションとしてGit設定でショートカットを定義することもできます。${HOME}/.gitconfig に
[url "git://live-systems.org/git/"]
insteadOf = lso:
を追加すると live-systems.org にあるgitリポジトリのアドレスを指定する必要があるところで lso: を使えるようになります。さらにオプションで末尾の .git も省くと、この設定を使って新しいイメージの作成を始めるのはこれだけ簡単になります:
$ lb config --config lso:live-images
live-images リポジトリ全体を複製すると数種類のイメージの設定を取得します。最初のイメージが出来上がってから異なるイメージをビルドしたい場合は別のディレクトリに移動して繰り返し、必要に応じて変更を加えてください。
どの場合も、イメージのビルド lb build は毎回スーパーユーザで行う必要があることを覚えておいてください。