私は現在、標準のRPMファイルを介して配布されているRHEL / CentOS用のサーバーソフトウェアを開発しています。これは、ユーザーがデフォルトのWeb UIを介してアクセスできるダウンロード可能なクライアントエンジンが含まれているためです。
これが私が持っているものです:
- ダウンロード可能なエージェントはまだ私たちの会社によって管理されていますが、リリースサイクルは別々です。
- 各新しいRPMバージョンは通常、特定のエージェントバージョンに関連付けられています(通常は最新バージョンですが、同じかもしれません)。
- ユーザーがサーバーをアップグレードするときに同じプロキシを引き続き使用しようとすることがあります。
- エージェントのインストールは現在RPMと共にパッケージ化されているため、サーバーがアップグレードされると、以前のバージョンのエージェントがシステムから削除されます。
明らかに(4)は望ましくないので、私たちが望むのは、サーバーコンポーネントがアップグレードされてもインストールされているすべてのエージェントバージョンを維持することです。
考えられる解決策の 1 つは、名前にエージェントのバージョン番号があり、デフォルトの RPM が依存関係として必要な独自の RPM にエージェントを配置することです。したがって、製品がインストールされると、rpm -qaが表示されます。
<product>-1.0.0
<product>-agent-install-1.0.5-1.0 (might be a better way to format the name)
サーバーが更新されると、以下が表示されます。
<product>-2.0.0
<product>-agent-install-1.0.5-1.0
<product>-agent-install-1.2.0-1.0
私は確かにLinuxの専門家ではないので、上記の戦略が果たして正しいかどうか疑問に思います。
- 考えられる解決策(つまり、全体的なアイデアを台無しにすることができる明白なものを見逃していません)
- 許可される行為またはハッキング
よりきれいな選択肢はありますか?たとえば、エージェントインストーラを別のディレクトリにコピーするだけで各サーバーをインストールできます。他のディレクトリはRPMによって管理されていないため、削除されずに残ります。しかし、これは良いですか?