blob: 510323a9b0c12426f388ba3ae1b6c1d9814d0932 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
:B~ 収録内容の独自化
1~customizing-contents 収録内容の独自化
この章では収録するパッケージを単に選択だけにとどまらない、微調整まで含めた Live システムの収録内容の独自化について説明します。インクルードにより
Live
システムイメージの任意のファイルを追加、置換できるようになり、フックによりビルド時及びブート時の異なる段階で任意のコマンドを実行できるようになり、preseed
が debconf の質問に対する回答を提供することでパッケージのインストール時に設定できるようになります。
2~includes Includes
理想的なのは変更されていないパッケージにより提供されるファイルを Live
システムで完全に収録することではありますが、ファイルを使って内容をいくらか提供あるいは変更することが便利なこともあります。インクルードを使うと Live
システムイメージ中の任意のファイルを追加 (または置換) することができるようになります。live-build
ではこれを使う仕組みを2つ提供しています:
_* chroot ローカルインクルード: chroot/Live
ファイルシステムに対してファイルの追加や置換ができるようになります。さらなる情報については、{Live/chroot
ローカルインクルード}#live-chroot-local-includes を見てください。
_* バイナリローカルインクルード:
バイナリイメージ中のファイルの追加や置換ができるようになります。さらなる情報については、{バイナリローカルインクルード}#binary-local-includes
を見てください。
「Live」及び「バイナリ」イメージの違いについてのさらなる情報は、{用語}#terms を見てください。
3~live-chroot-local-includes Live/chroot ローカルインクルード
chroot ローカルインクルードを使って chroot/Live ファイルシステム中のファイルの追加や置換を行い、それを Live
システムで利用することができます。代表的な使い方として Live システムで利用するユーザディレクトリ (#{/etc/skel}#)
の骨格を構成させ、live
ユーザのホームディレクトリを作成するということがあります。別の使い方としては設定ファイルを提供し、そのまま加工せずイメージ中に追加または置換するということがあります。加工が必要な場合は
{Live/chroot ローカルフック}#live-chroot-local-hooks を見てください。
ファイルを収録するには #{config/includes.chroot}# ディレクトリに単純に追加します。このディレクトリが Live
システムのルートディレクトリ #{/}# に対応します。例えば Live システムにファイル #{/var/www/index.html}#
を追加する場合:
code{
$ mkdir -p config/includes.chroot/var/www
$ cp /path/to/my/index.html config/includes.chroot/var/www
}code
それから設定は以下の配置になっているでしょう:
code{
-- config
[...]
|-- includes.chroot
| `-- var
| `-- www
| `-- index.html
[...]
}code
chroot
ローカルインクルードはパッケージがインストールされた後にインストールされるので、パッケージによりインストールされたファイルは上書きされます。
3~binary-local-includes バイナリローカルインクルード
文書やビデオ等の内容をメディアのファイルシステムに収録して、メディアを差し込んで Live
システムをブートしなくてもすぐにアクセスできるようにするのにバイナリローカルインクルードを使えます。これは chroot
ローカルインクルードと同様の方法で動作します。例えばファイル #{~/video_demo.*}# が Live システムの実演ビデオで、リンク先の
HTML 索引ページでそれを説明しているものと仮定しましょう。単純に内容を #{config/includes.binary/}# にコピーします:
code{
$ cp ~/video_demo.* config/includes.binary/
}code
これでファイルは Live メディアの最上位ディレクトリに現れます。
2~hooks フック
フックではビルドの chroot 及び バイナリの段階でコマンドを実行し、イメージを独自化できます。
3~live-chroot-local-hooks Live/chroot ローカルフック
chroot の段階でコマンドを実行するにはファイル名末尾が #{.hook.chroot}# でコマンドを収録するフックスクリプトを
#{config/hooks/}# ディレクトリに作成します。フックは残りの chroot 設定の適用後に chroot
内で実行されるため、フックの実行に必要なパッケージやファイルを全て確実に設定に収録することを忘れないようにしてください。代表的な chroot
の様々な独自化タスクについて #{/usr/share/doc/live-build/examples/hooks}# で提供されている chroot
フックスクリプトの例を確認してください。この例からコピーやシンボリックリンクを作成して自分の設定で使えます。
3~boot-time-hooks ブート時フック
ブート時にコマンドを実行するために man ページの「独自化」節で説明されている live-config
フックを提供することができます。#{/lib/live/config/}# で提供している live-config
独自のフックを、実行順を示す頭の番号に注意して調べてください。それから自分のフックに実行順を示す適切な番号を頭に付けて、#{config/includes.chroot/lib/live/config/}#
内の chroot
ローカルインクルードか、{変更したあるいはサードパーティのパッケージのインストール}#installing-modified-or-third-party-packages
で説明している独自パッケージとして提供してください。
3~ バイナリローカルフック
バイナリ段階でコマンドを実行するには、コマンドを収録するフックスクリプトを、末尾に #{.hook.binary}# を付けて
#{config/hooks/}# ディレクトリに作成します。このフックは他の binary_checksums
を除いたバイナリコマンドを全て実行した後の、バイナリコマンドのほぼ最後に実行されます。フック内のコマンドは chroot
内で実行されるのではないため、ビルドツリー外のファイルを変更することのないように注意してください。変更するとビルドシステムが機能しなくなるかもしれません!
代表的なバイナリ独自化タスクについて #{/usr/share/doc/live-build/examples/hooks}#
で提供されているバイナリフックスクリプトの例を確認してください。この例からコピーやシンボリックリンクを作成して自分の設定で使えます。
2~ Debconf 質問の preseed
#{config/preseed/}# ディレクトリにある、末尾が段階 (#{.chroot}# か #{.binary}#) に続いて
#{.cfg}# で終わるファイルは debconf の preseed ファイルと見なされ、対応する段階で live-build により
#{debconf-set-selections}# を使ってインストールされます。
debconf のさらなる情報については、/{debconf}/ パッケージの #{debconf(7)}# を見てください。
|