Ten rozdział zawiera przegląd trzech głównych narzędzi stosowanych w budowie systemów live: live-build, live-boot i live-config.
Iive-build to zbiór skryptów do budowania systemów live. Skrypty te są również określane jako "polecenia".
Pomysłem stojącym za live-build jest bycie oprawą, która używa struktury katalogów jako konfiguracji, aby całkowicie zautomatyzować i dostosować wszystkie aspekty budowania obrazu live.
Wiele pojęć jest podobnych do tych używanych do budowania pakietów Debiana z użyciem debhelper' a:
W przeciwieństwie do debhelpera, live-build zapewnia narzędzia do generowania szkieletu katalogów konfiguracyjnych. Może to być uznane za podobne do narzędzi takich jak dh-make. Aby uzyskać więcej informacji na temat tych narzędzi, kontynuuj czytanie, ponieważ pozostała część tego rozdziału omawia cztery najważniejsze polecenia. Należy zauważyć, że głównym wrapperem dla polecenia live-build jest lb.
As discussed in live-build, the scripts that make up live-build read their configuration with the source command from a single directory named config/. As constructing this directory by hand would be time-consuming and error-prone, the lb config command can be used to create the initial skeleton configuration tree.
The lb config command creates the following directories inside config/: hooks/, includes/, several other includes subdirectories for each stage of the build process and package-lists/. The latter includes a list of several important live packages like live-boot, live-config and live-config-sysvinit.
Wykonanie lb config bez żadnych argumentów zakończa się utworzeniem podkatalogu config, w którym zapisane są niektóre domyślne ustawienia w plikach konfiguracyjnych, a dwa szkielety drzew o nazwie auto/ i #{local/}#.
$ lb config
[2014-04-25 17:14:34] lb config
P: Updating config tree for a debian/wheezy/i386 system
Normalnie, pewnie będziesz chciał określić niektóre opcje. Na przykład, aby określić, jakiego menadżera pakierów chcesz użyć podczas budowania obrazu:
$ lb config --apt aptitude
Jest możliwe ustalenie wielu opcji, takich jak:
$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...
Pełna lista opcji dostępna jest w podręczniku man pakietu lb_config.
Polecenie lb build czyta konfigurację z katalogu config/. A następnie uruchamia polecenia niższego poziomu potrzebne do budowy Twojego systemu live.
Zadaniem polecenia lb clean, jest to aby usunąć różne części kompilacji tak aby można było zacząć od czystego stanu. Domyślnie etapy chroot, binary and source są sprzątane, ale cache pozostaje nienaruszone. Ponadto, tylko poszczególne etapy mogą być oczyszcane. Na przykład, jeśli zostały wprowadzone zmiany, które wpływają tylko na etap binarny, należy użyć lb clean --binary przed budowaniem nowych plików binarnych. Jeśli zmiany unieważniają proces bootstrap i/lub zmieniają cache pakietów, np. po zmianie opcji --mode, --architecture, lub --bootstrap, trzeba użyć lb clean --purge. Zobacz podręcznik man pakietu lb_clean aby uzyskać listę wszystkich opcji.
live-boot to zbiór skryptów zapewniających haki do initramfs-tools, wykorzystywane do wytwarzania plików initramfs, które są w stanie uruchomić system live, takich jak te stworzone przez live-build. Obejmuje to obrazy ISO systemów live, archiwa netboot i obrazów dysku USB.
W czasie rozruchu będzie szukać nośników tylko do odczytu zawierających katalog /live/, gdzie jest przechowywany system plików (często skompresowany obraz systemu plików jak SquashFS). Jeśli znajdzie takowy, stworzy zapisywalne środowisko, stosując aufs, dla systemów takich jak Debian, aby z niego wystartować.
Więcej informacji na temat początkowych plików ramfs w Debianie można znaleźć w Podręczniku Debiana Linux Kernel na ‹http://kernel-handbook.alioth.debian.org/› w rozdziale initramfs.
live-config zawiera skrypty, które są uruchamiane przy starcie systemu live po live-boot, tak aby automatycznie skonfigurować system live. Obsługuje on takie zadania jak ustawienie nazwy hosta, lokalizacji i strefy czasowej, tworzenie użytkownika live, zatrzymywanie zadań crona i autologowanie użytkownika live.