1

specアプリケーションをインストールするためのファイルを構築している 3 つのパッケージがあります。

Package A
Package B
Package C

A depends on B
A depends on c

問題は、これらの各パッケージが、インストール前に App Server をシャットダウンし、インストール後に再起動する必要があるものをインストールすることです。

BまたはCのみをインストールする場合はどちらでもかまいません。

A をインストールし、B や C の新しいバージョンがある場合の問題は、App Server を 3 回連続して再起動することになり、再起動するたびに 10 分ほどかかります。

RPM をビルドするときに、A と B が A への依存関係としてインストール/更新されていることを検出し、サーバーを再起動せずに A にそれをさせる方法はありますか?

4

1 に答える 1

1

それを行うためのネイティブな方法があるかどうかはわかりませんが、私が過去に行ったことは%pre、ターゲット サービスが実行されている場合にすべてのパッケージをチェックインさせることです (例: httpd)。そうである場合は、シャットダウンatし、適切な時間 (2 分など) で再起動するために使用します。各 RPM は、再起動が既にキューに入っているかどうかもチェックし (「n」などのランダムなキューを使用しました)、そうである場合は、さらに 2 分間バンプアウトします。最終的な結果として、最終的なパッケージがインストールされてから 2 分後にサーバーが 1 回だけ起動するはずです。

欠点: は LSB にありますat何らかの理由で少数のマシンにインストールされていなかったため、Requiresタグに追加する必要がありました。

于 2014-01-30T02:18:56.827 に答える