debconf 有一个文件,其中/var/cache/debconf/config.dat
包含配置问题的答案。例如,
Name: libpam-runtime/profiles
Template: libpam-runtime/profiles
Value: unix, systemd
Owners: libpam-runtime
Variables:
profile_names = mkhomedir, unix, systemd
profiles = activate mkhomedir, Unix authentication, Register user sessions in the systemd control group hierarchy
它们是什么Name
以及Template
为什么它们看起来总是相同的?Value
并且Owners
看起来足够清楚。最重要的是,该Variables
零件的用途是什么?我认为整个节都在描述一个变量。
答案1
从技术上讲,该节描述了问题,用 debconf 术语来说。
至于Template
,从相应 Perl 模块的文档文本:
创建新模板时,会创建一个与模板同名的问题。这是为了确保模板至少有一个所有者(问题),并让 debconf 用户的生活更轻松,这样他们就不必手动注册该问题。
那么,所有者字段实际上用于设置问题的所有者。
大多数 debconf 用户可能不需要基于同一模板创建其他问题。
要理解该Variables
部分,您需要查找相应的模板。在本例中,profiles
是一个选项列表(请参阅/var/cache/debconf/templates.dat
):
Name: libpam-runtime/profiles
Choices: ${profiles}
Choices-c: ${profile_names}
Description: PAM profiles to enable:
...
并从man 7 debconf
,这是变量类型的一个实例select
:
select A choice between one of a number of values. The choices must be specified in
a field named 'Choices'. Separate the possible values with commas and
spaces, like this:
Choices: yes, no, maybe
该Choices-C
领域密切相关:
DEBCONF_C_VALUES
If this environment variable is set to 'true', the frontend will display the values
in Choices-C fields (if present) of select and multiselect templates rather than
the descriptive values.