
複数のバージョンを同時にインストールできるようにする必要があるものをパッケージ化する方法について、ガイドラインや提案はありますか?
答え1
これがあなたが達成しようとしていることに適合するかどうかはわかりませんが、私が取り組んだプロジェクトでは、まず次のようなディレクトリ構造を指定してこれを実行しました。
/usr/local/[project_name]/[version]
ここでproject_name
、 はプロジェクトの「ベース名」であり、version
は特定のタグ付きリリースです。次に、RPM バージョンに任意の番号 (単調増加) を使用しました。これにより、同じタグまたはブランチ内のリリースが他のタグ/ブランチと競合することなく RPM アップグレードできるようになりました。つまり、RPM 名ヘッダーのどこかにバージョンではなくバージョン番号をエンコードする必要があります。例:
Name: foobar-1.0
Version: 1234
Release: 1
# ...etc...
この場合、RPM はパスの下にインストールされ/usr/local/foobar/1.0
、後続のバージョンは「foobar-2.0」という名前になり、同様にインストールされます。
「foobar-1.0」という名前は、他のシステムが必要であることを示唆しています。ないRPM システムのバージョン番号を追跡するために、タグ付きリリースのスペックファイルをオンデマンドで生成するだけのシェル スクリプトを使用しました。これは少し面倒ですが、パッケージの複数のバージョンを共通の方法でインストールし、同時に複数のバージョンを使用できる柔軟性が得られます。
これは単なる提案であり、当然ながら人によって異なります。
答え2
パッケージに異なる名前を付け、ファイルが別々の場所にインストールされるようにしてください。
または、すべてのバージョンを 1 つのパッケージにバンドルします。