B.3. 创建预置文件
预置文件是 debconf-set-selections 命令使用的格式。通常预置文件中每一行的格式为:
<owner> <question name> <question type> <value>
The file should start with #_preseed_V1
编写预置文件的时候要留意几条规则。
在类型和值之间只有一个空格或者 tab:任何额外的空格将被解释为值的一部分。
一行可以通过行尾的反斜杠(“
\
”)连接符分成多行。分割一行比较妥当的地方是在问题后面;在类型和值之间分割则是糟糕做法。被分割的行连接时会把行首和行尾的空格缩减为一个空格,再组成单独一行。只在安装程序自己使用的 debconf 变量(模板),owner 应该设置为 “d-i”; 要在安装后的系统里面预置变量,应该使用名称中包含对应 debconf 模板的软件包。只有那些 owner 为非 “d-i” 的变量将被保存到安装后系统的 debconf 数据库里面。
大多数问题需要使用有效的英文预置值,而不是翻译过的值。但有些问题(例如
partman
),需要使用翻译过的值。有些问题在安装过程中显示值的代码而不是英文文本。
Start with
#_preseed_V1
建立预置文件最简单的方法是使用例子文件作为工作的基础,它位于 第 B.4 节 “预置文件的内容(buster)”。
另一种方法是手动安装,重启后,使用 debconf-utils
软件包里面的 debconf-get-selections 导出 debconf 数据库和安装程序的 cdebconf 数据库到一个文件:
- $ echo "#_preseed_V1" >
file
- $ debconf-get-selections --installer >>
file
- $ debconf-get-selections >>
file
但用此方法产生的文件,有些项无法预置。对于大多数用户,示例文件是一个较佳的开始。
注意 | |
---|---|
这种方法在安装的最后,安装程序的 cdebconf 数据库被保存到新安装系统的 如果您清除 |
为了检测问题答案可用的值,您可以在安装进行中使用 nano 检查 /var/lib/cdebconf
下的文件。templates.dat
是原始的模板,questions.dat
是当前变量设置的值。
为了在安装之前测试您的预置文件是否有效,您可以使用 debconf-set-selections -c preseed.cfg
命令。