debian-installerでプリセットオプションを操作する

debian-installerでプリセットオプションを操作する

現在、私はやや動的なプレハブの建物を作ろうとしています。これは、カスタムテンプレート/質問を作成し、回答に基づいて特定の「di」オプションを設定することを意味します。私の環境はdebian-installerを使ったUbuntu / Debianです。

これは、次のコマンドを使用して実行されます。 d-i preseed/early_command string wget -qO preseed_early_command.sh http://myurl/preseed/server/bionic/preseed_early_command.sh && sh preseed_early_command.sh

言語の選択に応じて設定固有のオプションを試してみましたが、認識されているように見えますが、debconf-set完了early_command後も言語ダイアログボックスが表示されます(すべての設定値が質問に従って正しく設定されているにもかかわらず)。

if [ "$(debconf-get language-select/select)" = "German" ]; then
    debconf-set debian-installer/language "de"
    debconf-set debian-installer/country "DE"
    debconf-set debian-installer/locale "de_DE.UTF-8"
    debconf-set console-setup/ask_detect false
    debconf-set keyboard-configuration/layoutcode "de"
    debconf-set keyboard-configuration/variantcode "nodeadkeys"
fi

設定されているにもかかわらず、インストーラが私にもう一度質問しないようにするにはどうすればよいですか?必要に応じてプリセットを操作できますか?

マシンタイプの選択(デスクトップ/ヘッドレスなど)に従ってtaskel / pkgselオプションを設定したいと思います。ただし、直接実行しようとしたり使用しようとすると、常にエラーで失敗します。debconf-set

if [ "$(debconf-get machine-type/select)" = "Ubuntu Desktop" ]; then
    debconf-set tasksel/first multiselect ubuntu-desktop
    debconf-set pkgsel/include openssh-server build-essential nano vim hardinfo htop remmina bash-completion dkms dialog
elif [ "$(debconf-get machine-type/select)" = "Ubuntu Headless" ]; then
    debconf-set tasksel/first multiselect standard
    debconf-set pkgsel/include "openssh-server nano vim htop bash-completion ntp"
fi

「pkgsel/tasksel」オプションをどのように実行/評価しますか? busyboxで例外が発生したため、この段階ではTaskselを使用できないようですnot found

ベストアンサー1

この答えは、2つの質問のうち最初の質問だけを扱おうとします。

debian-installerには、ソースコードであるdebconf-set短いシェルスクリプトがあります。構成モジュール(3)そして電話をかけてみてくださいdb_set $1 $2。より便利なコマンドはdebconf-set-selections次のように理解できます。debconf-設定-選択(1)は、プリセットファイルと同じ形式のファイルを引数として使用します。おそらく標準入力でもデータを受け入れる必要があるようですが、Debian インストーラ環境で正常に動作しませんでした。

たとえば、

VALUES=`mktemp`
cat > "${VALUES}" << END_OF_DEBCONF
d-i time/zone string Antarctica/Troll
END_OF_DEBCONF
debconf-get-selections "${VALUES}"

返品。ただpreseed/runスクリプトを使用することですpreseed/early_command

おすすめ記事