プリセットでdebconf変数がどのように初期化されるかを理解できません

プリセットでdebconf変数がどのように初期化されるかを理解できません

最近研究室を受け継いだが、残念ながらその設置責任者が組織を離れた。 pxeのインストールプロセスを理解しようとしていますが、プリセット設定でdebconf変数を初期化するのに問題があります。

プリセット構成の一部:

### Account setup
d-i passwd/user-fullname string TEST User
d-i passwd/username string test
d-i passwd/user-password-crypted password xxxxxxxxxxxxxxxxxxxxxxxxxxx
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false

### Boot loader installation
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

### Finishing up the installation
d-i finish-install/reboot_in_progress note

### Custom stuff, update pre-late.sh if creating new variables
base-config      test/http/server       string 
base-config      test/ubuntu/release    string 16.04 
base-config      test/nfs/server        string 10.44.55.5
base-config      test/nfs/config        string /export/vol01/ubuntu/config
base-config      test/nis/domain        string ccd
base-config      test/nis/server        string 10.44.55.100 10.44.55.101

#### Advanced options
d-i preseed/late_command   string wget http://10.44.55.5/ubuntu/config/pre-late.sh -O /tmp/pre-late.sh; sh -x /tmp/pre-late.sh
d-i     preseed/run     string classes.sh

上記の debconf 変数 test/ubuntu/release、test/nfs/server、test/nfs/config、test/nfs/domain、および test/nis/server が抽出され、環境変数は pre_late-sh に次のように設定されます。上記のプリセットで preseed/late_command を使用して実行されたスクリプトです。

#!/bin/sh

#Source debconf library
. /usr/share/debconf/confmodule

db_get test/ubuntu/release
export RELEASE="$RET"
db_get test/nfs/server
export NFS_SERVER="$RET"
db_get test/nfs/config
export NFS_CONFIG="$RET"
db_get test/nis/domain
export NIS_DOMAIN="$RET"
db_get test/nis/server
export NIS_SERVER="$RET"

私はdebconf変数を初期化する方法について多くのインターネット検索を試しましたが、ここではデフォルト設定で初期化される方法を理解できませんでした。誰かがこれがどのように行われるのかを理解するのに役立ちますか?

ベストアンサー1

プリセットは、定義された変数を、所有変数の適切なデータベースインストーラ変数debconfとは異なる変数のシステム(in)変数に保存します。したがって、すべての変数は最終的にシステムデータベースに保存されます。d-i/var/cache/debconfbase-configdebconf

db_getによって提供されるは、/usr/share/debconf/confmoduleデータベースから指定された変数の値を取得して変数debconfに保存します。RETだから

db_get test/ubuntu/release
export RELEASE="$RET"

値を検索してtest/ubuntu/release環境変数に保存しますRELEASE

バラよりDebian Wikiのプリセットページプリセットの詳細とdebconfDebian Wiki ページ詳細debconf

おすすめ記事