apt-getにインストール後のすべての設定手順をスキップするように依頼するにはどうすればよいですか?


11

Debian / Ubuntuマシンにいくつかのパッケージ(RabbitMQなど)をインストールする場合、post-installステップはデフォルトでサービスを開始します。

ほとんどの場合これは素晴らしいことですが、場合によっては(たとえば、必要なポートで既にサービスを実行している場合)、これはapt-get失敗し、完全に失敗します。

apt-getこれらのpost-install手順をすべてスキップして、適切にインストールできるようにする方法はありますか?

これはインストール中の質問に関するものではありません。対話式セッションであっても、post-installステップが失敗すると失敗するため、これらのインストールは失敗します。




1
その質問は似ていますが、異なります。これは、インタラクティブなステップだけでなく、すべてのステップをスキップすることについてです。一部のタスクは、必ずしも必要ではないスクリプトを自動的に実行します。
ウォルフ

回答:


8

apt-getに対話式のインストール後の設定手順をスキップするように依頼するにはどうすればよいですか?

export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]

編集:はい、それはインストール後の質問をスキップする(まあ、自動化する)ためでした、本当です-ごめん。

ポストインストールスクリプトをスキップする方法はありません。Debianの公式ポリシーは、スクリプトを編集して非端末エラーを返すか、スクリプトを修正することです。http://www.debian-administration.org/articles/251を参照してください

多くのサーバーでこれを自動化しているように思えますが、その場合は、おそらく独自のバージョンのパッケージを作成して展開する必要があります。別のオプションは、パッケージメンテナーにメールを送信し、起動の失敗がインストール後の端末エラーであるかどうかを議論することです(たとえば、apacheやlighttpdのような他のパッケージではないと思いますが、間違っている可能性があります)


それは、インタラクティブな手順をスキップすることです。これらはここでは問題ではありません。これらは非対話的なpost-installステップであり、何かがservice rabbitmq-server start失敗した場合に失敗します。
ウォルフ

更新しました。それは役立ちますか?
ブレットダイクマン

それは、それがそうであるかどうか疑問に思うよりも可能ではないことを知っている方が良い:)助けてくれてありがとう。
ウォルフ

sudoを使用している場合、環境変数のエクスポートは機能しませんが、次の方法で実行できますsudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
。– aculich

4

何をしたいのかは、policy-rc.dを使用することです。invoke-rc.dのマニュアルページを参照してください。サービスが自動的に開始されないようにポリシーを設定できます。


それはそれを回避する方法ですが、それは私が仮定する一時的な措置でしょうか?少なくとも...すべてのサービスの開始をグローバルに無効にすると思います。
ウォルフ

2

これは動作するはずです

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

このケースには少しハックがあり、非常に具体的ですが、それは大いに役立ちます!ありがとう:)
ウォルフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.