1

postinst スクリプトに問題があります。アプリケーションのユーザーを作成するには、MySQL の root パスワードを要求する必要があります。postinst で db_input を使用するのは悪い習慣ですが、本当に必要です。アプリ フォーム リポジトリをインストールするとこの postinst が機能しないのに、.deb パッケージとしてインストールすると正しく機能するのはなぜですか?

後付け:

#!/bin/bash -e

. /usr/share/debconf/confmodule

db_input high my_app/mysql_root_password || true
db_go

エラー:

dpkg: error processing my-app (--configure):
 subprocess installed post-installation script returned error exit status 30
configured to not write apport reports
                                      Errors were encountered while processing:
 my-app
E: Sub-process /usr/bin/dpkg returned an error code (1)
4

2 に答える 2

3

違いはおそらく、postinst の実行時に端末がどのようにセットアップされるかに関係しています。おそらく apt は、dpkg を単独で実行した場合とは異なる動作をします。おそらく、適切にラップされた postinst 呼び出しには、TTY が割り当てられていません。よくわかりません。

ただ、postinst を入れることすらサポートしていないと思いますdb_inputので、このままでは直せないかもしれません。本当に本当に postinst スクリプト自体から質問する必要がある場合は$DEBCONF_DEBUG、debhelper コマンドが実行される環境で「developer」に設定することでデバッグできる場合があります。

ただし、より便利な解決策は次のとおりだと思います。推奨されているように、 にはdebian/configスクリプトを使用する必要がありますdb_input。何があなたを止めていますか?

于 2012-05-08T15:09:09.763 に答える