web-dev-qa-db-ja.com

debconf config.datファイルの形式は何ですか?

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

NameTemplateとは何ですか?なぜそれらは常に同じように見えるのですか? ValueOwnersは十分に明確に見えます。何よりも、Variablesの部分は何のためのものですか?スタンザ全体が変数を記述していると思いました。

2
Isvara

技術的には、そのスタンザはdebconfの用語で Question を記述しています。

Templateについては、 対応するPerlモジュールのドキュメントテキスト から:

新しいテンプレートが作成されると、テンプレートと同じ名前で質問が作成されます。これは、テンプレートに少なくとも1人の所有者(質問)がいることを確認し、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.
3
muru