Debian

debconf config.dat 文件的格式是什麼?

  • December 7, 2018

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部分是做什麼用的?我以為整節都在描述一個變數。

從技術上講,該節用 debconf 術語描述了一個Question

至於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.

引用自:https://unix.stackexchange.com/questions/486481