Skip to the content.

6. Managing a configuration


本章解释了如何管理一个实时配置,从最初的创建,到实时构建软件和实时镜像本身的连续修订和连续发布。

6.1 Dealing with configuration changes

Live配置在第一次尝试时很少是完美的。从命令行传递lb config选项来执行单个构建可能没问题,但更典型的做法是修改这些选项并再次构建,直到您满意为止。为了支持这些更改,您将需要自动脚本来确保您的配置保持在一致的状态。

6.1.1 Why use auto scripts? What do they do?

lb config命令将您传递给它的选项存储在 config/* 文件中,以及设置为默认值的许多其他选项。如果您再次运行lb config,它将不会重置任何基于初始选项的默认选项。因此,例如,如果您再次运行lb config,并为–binary-images设置一个新值,那么旧映像类型默认的任何依赖选项可能不再适用于新映像类型。这些文件也不打算被阅读或编辑。它们存储了超过100个选项的值,所以没有人,更不用说你自己了,能够在这些选项中看到你实际指定了哪些选项。最后,如果您运行lb config,然后升级live-build,并且碰巧重命名了一个选项,config/* 将仍然包含以旧选项命名的变量,这些变量不再有效。

由于所有这些原因,auto/* 脚本将使您的工作更轻松。它们是lb config, lb build和lb clean命令的简单包装器,旨在帮助您管理配置。auto/config脚本存储带有所有所需选项的lb config命令,auto/clean脚本删除包含配置变量值的文件,auto/build脚本保留每个构建的build.log。每次运行相应的lb命令时,都会自动运行这些脚本。通过使用这些脚本,您的配置更容易阅读,并且从一个版本到下一个版本在内部保持一致。此外,在阅读更新后的文档后升级live-build时,您将更容易识别和修复需要更改的选项。

6.1.2 Use example auto scripts

为了方便起见,live-build附带了示例自动shell脚本来复制和编辑。启动一个新的默认配置,然后将示例复制到其中:

$ mkdir mylive && cd mylive && lb config
$ mkdir auto
$ cp /usr/share/doc/live-build/examples/auto/* auto/

编辑auto/config,添加您认为合适的任何选项。例如:

#!/bin/sh
lb config noauto \
     --architectures i386 \
     --linux-flavours 686-pae \
     --binary-images hdd \
     --mirror-bootstrap http://ftp.ch.debian.org/debian/ \
     --mirror-binary http://ftp.ch.debian.org/debian/ \
     "${@}"

现在,每次使用lb config时,auto/config将根据这些选项重置配置。当您想要对它们进行更改时,请编辑此文件中的选项,而不是将它们传递给lb config。当您使用lb clean时,auto/clean将清除 config/* 文件以及任何其他构建产品。最后,当您使用lb build时,将通过auto/build在build.log中写入构建日志。

注意: 这里使用了一个特殊的noauto参数来抑制对auto/config的另一个调用,从而防止无限递归。确保在编辑时不会不小心删除它。另外,为了提高可读性,如上面的示例所示,当您将lb config命令拆分为多行时,请注意确保不要忘记每行末尾的反斜杠()。

6.2 Clone a configuration published via Git

使用lb config –config选项克隆一个包含实时系统配置的Git存储库。如果您想基于Debian Live Project维护的配置,请查看Subgroups和projects类别中名为live-images的存储库https://salsa.debian.org/live-team/。此存储库包含live系统prebuilt images的配置。

例如,要构建标准映像,请使用live-images存储库,如下所示:

$ mkdir live-images && cd live-images
$ lb config --config https://salsa.debian.org/live-team/live-images.git::debian
$ cd images/standard

在配置树中编辑auto/config和任何其他你需要的东西来满足你的需要。例如,非官方的非自由预构建映像是通过简单地添加 –archive-areas “main contrib non-free” 来制作的。

你可以选择在你的Git配置中定义一个快捷方式,在你的${HOME}/.gitconfig中添加以下内容:

[url "https://salsa.debian.org/live-team/"]
         insteadOf = lso:

在任何需要指定salsa.debian.org git存储库地址的地方,都可以使用lso。如果你还去掉了可选的.git后缀,使用这个配置启动一个新镜像就像这样简单:

$ lb config --config lso:live-images::debian

克隆整个live-images存储库会提取用于多个映像的配置。如果您在完成第一个映像之后想要构建一个不同的映像,请更改到另一个目录,并再次(可选地)进行任何更改以满足您的需要。

在任何情况下,请记住每次都必须以超级用户的身份构建映像:lb build