:B~ Panoramica degli strumenti 1~overview-of-tools Panoramica degli strumenti This chapter contains an overview of the three main tools used in building live systems: live-build, live-boot and live-config. 2~live-build Il pacchetto live-build live-build is a collection of scripts to build live systems. These scripts are also referred to as "commands". L'idea dietro live-build è di essere un'infrastruttura che utilizza una directory di configurazione per automatizzare totalmente e personalizzare tutti gli aspetti della creazione di un'immagine live. Molti concetti sono simili a quelli applicati per creare pacchetti Debian con /{debhelper}/: _* The scripts have a central location for configuring their operation. In /{debhelper}/, this is the #{debian/}# subdirectory of a package tree. For example, dh_install will look, among others, for a file called #{debian/install}# to determine which files should exist in a particular binary package. In much the same way, live-build stores its configuration entirely under a #{config/}# subdirectory. _* Gli script sono indipendenti, vale a dire che è sempre sicuro eseguire ogni comando. Unlike /{debhelper}/, live-build provides the tools to generate a skeleton configuration directory. This could be considered to be similar to tools such as /{dh-make}/. For more information about these tools, read on, since the remainder of this section discuses the four most important commands. Note that the preceding #{lb}# is a generic wrapper for live-build commands. _* *{lb config}*: Responsible for initializing a Live system configuration directory. See {The lb config command}#lb-config for more information. _* *{lb build}*: responsabile di iniziare la creazione di un sistema live. Si veda {Il comando lb}#lb-build per maggiori informazioni. _* *{lb clean}*: responsabile della rimozione di parti della creazione di un sistema live. Si veda {Il comando lb clean}#lb-clean per maggiori informazioni. 3~lb-config Il comando #{lb config}# As discussed in {live-build}#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. Issuing #{lb config}# without any arguments creates the #{config/}# subdirectory which is populated with some default settings in configuration files, and two skeleton trees named #{auto/}# and #{local/}#. code{ $ lb config [2015-01-06 19:25:58] lb config P: Creating config tree for a debian/stretch/i386 system P: Symlinking hooks... }code Using #{lb config}# without any arguments would be suitable for users who need a very basic image, or who intend to provide a more complete configuration via #{auto/config}# later (see {Managing a configuration}#managing-a-configuration for details). Normally, you will want to specify some options. For example, to specify which package manager to use while building the image: code{ $ lb config --apt aptitude }code È possibile specificare molte opzioni, come: code{ $ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ... }code Una lista completa delle opzioni è disponibile nel manuale di #{lb_config}#. 3~lb-build Il comando #{lb build}# Il comando #{lb build}# legge la configurazione dalla directory #{config/}# ed esegue a un livello inferiore i comandi necessari a costruire il sistema live. 3~lb-clean Il comando #{lb clean}# It is the job of the #{lb clean}# command to remove various parts of a build so subsequent builds can start from a clean state. By default, #{chroot}#, #{binary}# and #{source}# stages are cleaned, but the cache is left intact. Also, individual stages can be cleaned. For example, if you have made changes that only affect the binary stage, use #{lb clean --binary}# prior to building a new binary. If your changes invalidate the bootstrap and/or package caches, e.g. changes to #{--mode}#, #{--architecture}#, or #{--bootstrap}#, you must use #{lb clean --purge}#. See the #{lb_clean}# man page for a full list of options. 2~live-boot Il pacchetto live-boot live-boot is a collection of scripts providing hooks for the /{initramfs-tools}/, used to generate an initramfs capable of booting live systems, such as those created by live-build. This includes the live system ISOs, netboot tarballs, and USB stick images. All'avvio cercherà supporti in sola lettura che contengano una directory #{/live/}# dove sia presente un filesystem root (spesso un'immagine compressa come squashfs). Se trovata, creerà un ambiente scrivibile usando aufs, per avviarsi da sistemi simili a Debian. Si possono trovare maggiori informazioni sui ramfs iniziali nel capitolo su initramfs del Debian Linux Kernel Handbook all'indirizzo http://kernel-handbook.alioth.debian.org/. 2~live-config Il pacchetto live-config live-config è costituito da script eseguiti all'avvio dopo live-boot per configurare automaticamente il sistema live. Gestisce attività quali impostare l'hostname, localizzazione e fuso orario, creare l'utente live, inibire compiti automatizzati tramite cron ed eseguire il login automatico dell'utente live.