1

debconf を使用して、ユーザーが本当にインストールするかどうかを尋ねる deb を構築しています (単純なブール値のテンプレート)。apt-get install pkg-name後でユーザーに新しい構成メニューを表示できるように、インストールを正常に終了する最良の方法は何ですか?

preinst私の現在の解決策は、以下のようにスクリプトの値を確認することです:

db_get pkg-name/confirm_install
if [ "$RET" = "false" ]; then
      db_purge
      exit 1
fi

これexit 1は、パッケージがインストールされたと考えて続行しないようにするために必要apt-getであり、db_purge により、ユーザーはクリーンな debconf db を使用して再インストールできます。ただし、厄介なエラーがスローされます。

dpkg: error processing pkg-name (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 pkg-name
E: Sub-process /usr/bin/dpkg returned an error code (1)

debメンテナースクリプト内からインストールを終了するより良い方法はありますか?

4

1 に答える 1

1

あるとは思いません。dpkg の観点からすると、ユーザーはパッケージをインストールするように要求し、それが起こらない場合は、それが起こらなかったこととその理由を示すためにできるだけ多くの説明を与える必要があります。

代わりに、ユーザーが特別な「再構成」スクリプト (または標準) を実行するまで、パッケージが提供する追加の動作を有効にせずに、パッケージのインストールを正常に終了できるようにする可能性がありますdpkg-reconfigure $yourpkg

于 2016-07-12T14:32:37.427 に答える