Debian/Ubuntuマシンにいくつかのパッケージ(RabbitMQなど)をインストールする場合、post-install
ステップはデフォルトでサービスを開始します。
これはほとんどの場合に優れていますが、場合によっては(たとえば、必要なポートでサービスがすでに実行されている場合など)、これは失敗し、apt-get
が完全に失敗します。
apt-get
にpost-install
の手順をすべてスキップして、正しくインストールできるようにする方法はありますか?
注インストール中の質問についてではありません。インタラクティブセッションでも、post-install
ステップが失敗するため、これらのインストールは失敗します。失敗は正しく処理されません。
インタラクティブなインストール後の構成手順をスキップするようにapt-getに要求するにはどうすればよいですか?
export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]
編集:はい、それはインストール後のスキップ(まあ、自動化)のためのものでした質問、true-ごめんなさい。
インストール後のscriptsをスキップする方法はありません。公式のDebianポリシーは、スクリプトを編集して非ターミナルエラーを返すか、スクリプトを修正することです。 http://www.debian-administration.org/articles/251 を参照してください
多くのサーバーでこれを自動化しているように思えますが、その場合は、独自のバージョンのパッケージを作成して展開することになるでしょう。別のオプションは、パッケージのメンテナーにメールを送信して、インストールの失敗が開始エラーであるかどうかを話し合うことです(たとえば、Apacheやlighttpdなどの他のパッケージのエラーではないようですが、間違っている可能性があります) 。)
あなたがしたいのはpolicy-rc.dのようなものです。 invoke-rc.dのマニュアルページを参照してください。サービスが自動的に開始されないようにポリシーを設定できます。
これはうまくいくはずです
echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d