:B~ Dostosowywanie zawartości

1~customizing-contents Dostosowywanie zawartości

Ten rozdział omawia dokładną regulację dostosowywania zawartości systemu
poza samym wybieraniem pakietów do wyboru, które będą zawarte. Uwzględnianie
pozwala dodać lub wymienić dowolne pliki w obrazie systemu live, haki
pozwalają na wykonanie dowolnego polecenia na różnych etapach produkcji oraz
w czasie rozruchu a opcji preseeding pozwala skonfigurować pakiety, gdy są
zainstalowane poprzez dostarczenie odpowiedzi na pytania debconfa.

2~includes Uwzględnianie

Chociaż najlepiej byłoby gdyby system live zawierał się wyłącznie z plików
dostarczonych przez całkowicie niemodyfikowane pakiety, to czasami
wygodniejszym jest, dostarczenie lub zmodyfikowanie pewnych treści za pomocą
plików. Korzystając z uwzględniania, można dodać (lub wymienić) dowolne
pliki w systemie obrazu live. live-build dostarcza dwa takie mechanizmy
wykorzystania:

_* Lokalne uwzględnianie chroot: Pozwoli Ci dodać lub zastąpić pliki w
systemie plików chroot/live. Zobacz {Lokalne uwzględnianie
chroot/live}#live-chroot-local-includes, aby uzyskać więcej informacji.

_* Lokalne uwzględnianie danych binarnych: Pozwoli Ci dodać lub zastąpić
pliki w obrazie binarnym. Zobacz {Lokalnych uwzględnianie danych
binarnych}#binary-local-includes, aby uzyskać więcej informacji.

Proszę zobaczyć {Definicje}#terms aby uzyskać więcej informacji na temat
różnicy między obrazami "binarnymi" a obrazami "live".

3~live-chroot-local-includes Lokalnie uwzględniane w chroot/live

Chroot local includes can be used to add or replace files in the chroot/Live
filesystem so that they may be used in the Live system. A typical use is to
populate the skeleton user directory (#{/etc/skel}#) used by the Live system
to create the live user's home directory. Another is to supply configuration
files that can be simply added or replaced in the image without processing;
see {Chroot local hooks}#chroot-local-hooks if processing is needed.

Aby dołączyć pliki, po prostu dodaj je do katalogu
#{config/includes.chroot}#. Ten katalog odnosi się do katalogu root #{/}#
systemu live. Na przykład, aby dodać plik #{/var/www/index.html}# do systemu
live, użyj:

code{

 $ mkdir -p config/includes.chroot/var/www
 $ cp /path/to/my/index.html config/includes.chroot/var/www

}code

Konfiguracja będzie mieć następujący układ:

code{

- config
    [...]
     |-- includes.chroot
     |   `-- var
     |       `-- www
     |           `-- index.html
    [...]

}code

Lokalnie uwzględnione w chroot są instalowane po instalacji pakietów, tak że
pliki zainstalowane przez pakiety są zastępowane.

3~binary-local-includes Lokalnie uwzględniane dane binarne

Aby zawierać materiały takie jak filmy lub dokumentacja na systemie plików
nośnika tak, aby były one dostępne od razu po włożeniu nośnika bez
uruchamiania systemu live, możesz użyć lokalnego uwzględniania danych
binarnych. Działa to w podobny sposób do lokalnego uwzględniania w
chroot/live. Załóżmy na przykład, że pliki #{~/video_demo.*}# to filmy
demonstacyjne systemu live opisanego przez i dowiązane przez stronę indeksu
HTML. Wystarczy skopiować materiał z #{config/includes.binary/}# w
następujący sposób:

code{

 $ cp ~/video_demo.* config/includes.binary/

}code

Pliki te pojawią się teraz w katalogu głównym nośnika live.

2~hooks Haki

Hooks allow commands to be run in the chroot and binary stages of the build
in order to customize the image. Depending on whether you are building a
live image or a regular system image you have to place your hooks in
#{config/hooks/live}# or #{config/hooks/normal}# respectively. These are
frequently referred to as local hooks because they are executed inside the
build environment.

There are also boot-time hooks that allow you to run commands once the image
has already been built, during the boot process.

3~chroot-local-hooks Chroot local hooks

To run commands in the chroot stage, create a hook script with a
#{.hook.chroot}# suffix containing the commands either in the
#{config/hooks/live}# or #{config/hooks/normal}# directories. The hook will
run in the chroot after the rest of your chroot configuration has been
applied, so remember to ensure your configuration includes all packages and
files your hook needs in order to run. See the example chroot hook scripts
for various common chroot customization tasks provided in
#{/usr/share/doc/live-build/examples/hooks}# which you can copy or symlink
to use them in your own configuration.

3~ Lokalne haki binarne

To run commands in the binary stage, create a hook script with a
#{.hook.binary}# suffix containing the commands either in the
#{config/hooks/live}# or #{config/hooks/normal}# directories. The hook will
run after all other binary commands are run, but before binary_checksums,
the very last binary command. The commands in your hook do not run in the
chroot, so take care not to modify any files outside of the build tree, or
you may damage your build system! See the example binary hook scripts for
various common binary customization tasks provided in
#{/usr/share/doc/live-build/examples/hooks}# which you can copy or symlink
to use them in your own configuration.

3~boot-time-hooks Haki podczas uruchamiania

Aby wykonać polecenia przy starcie systemu, możesz dostarczyć haki
live-config, jak wyjaśniono w jego podręczniku man w sekcji "Customization"
(ang. dostosowywanie). Przeanalizuj własne haki live-config dostarczone w
#{/lib/live/config/}#, zwracając uwagę na numery sekwencji. Następnie dodaj
swój własne hak z odpowiednim prefiksem numeru sekwencji, albo jako lokalnie
uwzględnione w chroot w #{config/includes.chroot/lib/live/config/}#, lub w
postaci niestandardowego pakietu omówione w {Instalowanie zmodyfikowanych
pakietów lub pakietów innych
firm}#installing-modified-or-third-party-packages.

2~ Wstępne ustawienie pytań Debconfa (Preseeding)

Pliki w katalogu #{config/preseed/}# z rozszerzeniem #{.cfg}# w następującym
etapie (#{.chroot}# lub #{.binary}#) są brane pod uwagę jako pliki preseed
debconfa i są instalowane za pomocą live-build przez
#{debconf-set-selections}# podczas odpowiedniego etapu.

Aby uzyskać więcej informacji o debconf, proszę przeczytaj #{debconf(7)}# z
pakietu /{debconf}/.
