5. Overview of tools
本章概述了构建实时系统时使用的三个主要工具: live-build, live-boot 和 live-config.
5.1 The live-build package
live-build是用于构建实时系统的脚本集合。这些脚本也被称为”commands”。
Live-build背后的思想是成为一个框架,它使用配置目录来完全自动化和定制构建Live映像的所有方面。
许多概念与使用debhelper构建Debian软件包的概念相似:
-
脚本有一个用于配置其操作的中心位置。在debhelper中,这是包树的debian/子目录。例如,dh_install将查找一个名为debian/install的文件,以确定哪些文件应该存在于特定的二进制包中。与此类似,live-build将其配置完全存储在config/子目录下。
-
脚本是独立的 —— 也就是说,运行每个命令总是安全的。
与debhelper不同,live-build提供了生成框架配置目录的工具。可以认为这类似于dh-make之类的工具。有关这些工具的更多信息,请继续阅读,因为本节的其余部分将讨论四个最重要的命令。注意,前面的lb是live-build命令的通用包装器。
-
lb config: 负责初始化Live系统配置目录。请参阅The lb config command了解更多信息。
-
lb build: 负责启动Live系统构建。请参阅The lb build command了解更多信息。
-
lb clean: 负责移除Live系统构建的部分。请参阅The lb clean command了解更多信息。
5.1.1 The lb config command
正如在live-build中所讨论的,组成live-build的脚本使用源命令从一个名为config/的目录读取它们的配置。由于手工构建这个目录既耗时又容易出错,所以可以使用lb config命令创建初始框架配置树。
不带任何参数地执行lb config会创建config/子目录,其中包含配置文件中的一些默认设置,以及两个名为auto/和local/的skeleton树。
$ lb config
[2015-01-06 19:25:58] lb config
P: Creating config tree for a debian/stretch/i386 system
P: Symlinking hooks...
使用lb config不带任何参数将适用于需要非常基本的映像的用户,或者打算稍后通过auto/config提供更完整的配置的用户(参见Managing a configuration)。
通常,您需要指定一些选项。例如,要指定在构建映像时使用哪个包管理器:
$ lb config --apt aptitude
可以指定多个选项,例如:
$ lb config --binary-images netboot --bootappend-live "boot=live components hostname=live-host username=live-user" ...
完整的选项列表可以在lb_config手册页中找到。
5.1.2 The lb build command
lb build命令从config/目录读取配置。然后运行构建Live系统所需的较低级命令。
5.1.3 The lb clean command
lb clean命令的工作是删除构建的各个部分,以便后续构建可以从干净状态开始。默认情况下,chroot, binary和source阶段被清理,但缓存保持完整。此外,还可以清洗各个阶段。例如,如果您所做的更改只影响二进制阶段,则在构建新的二进制文件之前使用lb clean –binary。如果您的更改使引导和/或包缓存无效,例如更改–mode,–architecture或–bootstrap,则必须使用lb clean –purge。请参阅lb_clean手册页以获取完整的选项列表。
5.2 The live-boot package
live-boot是为initramfs-tools提供钩子的脚本集合,用于生成能够启动live系统的initramfs,例如由live-build创建的系统。这包括实时系统ISO, netboot tarball和u盘映像。
在引导时,它将查找包含/live/目录的只读介质,其中存储根文件系统(通常是压缩的文件系统映像,如squashfs)。如果找到了,它将使用aufs创建一个可写环境,供类似Debian的系统从中启动。
关于Debian中初始ramfs的更多信息可以在Debian Linux内核手册的initramfs章节中找到,地址为https://kernel-team.pages.debian.net/kernel-handbook/。
5.3 The live-config package
live-config由在启动时运行的脚本组成,在live-boot之后自动配置实时系统。它处理诸如设置主机名、区域设置和时区、创建活动用户、抑制cron作业和执行活动用户的自动登录等任务。