私はコンピュータの起動時に起動スクリプトを介して非対話式でpostfixのインストールを自動化しようとしました。
いくつかの調査の最後に必要な構成を持つサンプルコンピューターに手動でインストールし、次のように起動スクリプトを実行したときに構成に対する正しい答えを得るためのいくつかの提案を見つけました。
debconf-utils package command debconf-get-selections | grep postfix >preseed.cfg
問題は1つの構成、つまりメール名にあります。これは、私のインスタンスマシンがgcpクラウドホストによって予約されていない方法で作成され、最初に最初の設定で選択したときに不明なためです。渡す名前を事前に:
debconf-set-selections <<< 'postfix postfix/main_mail_type string "Local only"
今問題はデフォルト値を維持する方法です。 (有人インストールの場合は、この内容を確認して[OK]をクリックすると完了です。)
答え1
クサロナンダありがとうございます!今、エラーがどこにあるのか理解しているようです。このエラーが発生する前に、私は既知の期待を通して一連の質問と回答のペアを送信する方法としていくつかの期待されるスクリプトを使用し、その中にbashサブスクリプトを生成し、間接的に対話的にpostifiXをインストールしようとしました。後で私はこの計画を変更し、Expectスクリプトを完全に削除しますDEBIAN_FRONTEND="noninteractive" with debconf-set-selections command
。残り(おそらくご存知のように、postfixインストールはroot権限で実行する必要があります)、実行するたびにメッセージ「ERROR OPENNING TERMINAL:UKNOWN」でこの添え字を呼び出すと例外が発生するためです。ここで投稿の一部を確認した後、下付き文字コードを修正し、次のようにいくつかのコードを導入することでこの問題を解決できることがわかりました。
UID=$(ID -U)
if [xUID != x0]
then
printf -v cmd_str '%q'"$0" "$@"
exec su -c "$cmd_str"
fi
#the rest of the script code
#continues hereunder
サブスクリプトを変更した後、宣言を削除し、chmodを有効にし、#!/ bin / bash行への呼び出しをコメントアウトして削除し、その機能部分をデフォルトの起動スクリプトにプログラム的に含めました。これでスクリプトが機能します。する必要があります。