Debian パッケージテンプレートで動的デフォルト値を定義するには?

Debian パッケージテンプレートで動的デフォルト値を定義するには?

管理者にインターフェイス名のリストを入力させるパッケージがあります。リストにデフォルト値があることを望みます。ただ、各システムに異なるリストがあります(例:eth0、enp0s3、eno1など)。

これの例は次のとおりです。

Template: iplock/public_interfaces
Type: string
Default: eth0
Description: Public Interfaces
 Enter a comma separated list of interface names that are connected to the
 Internet (public). For example: "eth0, eno1, enp0s3" (without the quotes).
 This will be saved in the system settings file. If necessary, you will be
 able to override these values by creating another file with different values
 or use "sudo dpkg-reconfigure iplock" to change the package settings.

動的に設定できますかDefault: eth0?既存のDebianパッケージにこれの例はありますか?

注1:私はUbuntuのみを排他的に使用しています。

注2:上記のテンプレートは次のことができます。githubで見つけました

答え1

質問の値は動的に設定できますが、テンプレートのデフォルト値を使用しないでください。:

基本フィールドに質問の「値」が含まれているか、質問の値を変更するために使用できると思う間違いを犯さないでください。そうすることもできません。質問が最初に表示されたときにデフォルト値のみを提供するだけです。動的に変更されるデフォルト値を提供するには、SETコマンドを使用して質問の値を変更する必要があります。

この問題を処理する方法は2つあります。

  1. パッケージのインストール時またはプログラムの実行時に適切な値を決定できる場合は、デフォルト値をプレースホルダ値に設定し、プログラムが実行時にその値を使用するようにします。つまりeno1、フィールドに保存せず、eno1ユーザーが自分の値を指定しない限り、実行時に計算されます。

  2. ユーザーにメッセージを表示する前に適切な値を提供するには、db_set管理者スクリプトでそれを使用してください。バラより「ライブラリ」セクションman debconf-devel例えば。

関連情報