rpm: パッケージが以前のものを更新するか、追加でインストールされるかを決定するもの

rpm: パッケージが以前のものを更新するか、追加でインストールされるかを決定するもの

それは単にインストール パスですか? その場合、名前/パスにバージョンがあるパッケージは他のパッケージを更新することはないので、それはあり得ません。マニュアルの依存関係情報にはこれに関する記述がありません。RPM を作成するときに、cAPI-3.1.6-x86_64.rpm に、インストール時に cAPI-2.1.7-x86_64.rpm を更新し、/usr/lib の下に新しいパスを作成し、既存のパッケージを無視しないようにするには、どうすればよいでしょうか?

答え1

概ね同意ムスチー関連する特徴はパッケージの組み合わせである名前そして建築、概要を説明するのに役立ちます。

情報を探す場所は「アップグレード」ではなく、複数のバージョンをインストールするパッケージの:

複数のバージョンがインストールされている(rpm.org 上) に概要がわかりやすく記載されています。

すべてのパッケージ管理ツールは、パッケージ/プログラムを参照するために特定のキーを使用して動作します。通常、そのキーはパッケージです。 名前 またはパッケージ 名前 パッケージ アーチ

つまり、通常は2つの選択肢があります。パッケージ名のみ、またはパッケージ名とアーキテクチャの組み合わせです。

カーネルパッケージは、カーネルのバージョン間で競合するファイルが提供されないように特別に構築されています。

つまり、カーネルは特別に扱われます。Linux カーネル パッケージ内のすべてのファイルが異なる名前を持っていることが (パッケージ開発者には) わかっているためです (ファイル名にバージョンが埋め込まれているか、ファイルがバージョンが埋め込まれたディレクトリ内に存在するかのいずれか)。これは 1 つの特殊なケースです。特殊なケースが多すぎると、RPM のメンテナーの作業が増えます。

長期安定版のプログラムのパッケージが、パッケージの一部としてそれらのバージョン番号を使用してどのように構築されるかを示します。名前これにより、同じマシンに複数のバージョンのプログラムをインストールできるようになります。 示されている例は Python 用です。 同じスキームを使用する他のプログラムには、apache、autoconf、gcc、java などがあります。 Fedora22 からの例をいくつか示します。

SDL2-2.0.3-5.fc22.x86_64
openjpeg2-2.1.0-6.fc22.x86_64
pygobject2-2.28.6-13.fc22.x86_64
pygobject3-3.16.2-1.fc22.x86_64
pygobject3-base-3.16.2-1.fc22.x86_64
python3-3.4.2-6.fc22.x86_64
qt5-qtbase-5.5.0-15.fc22.x86_64
vte291-0.40.2-1.fc22.x86_64
vte3-0.36.4-1.fc22.x86_64
webkitgtk3-2.4.9-1.fc22.x86_64
webkitgtk4-2.8.5-2.fc22.x86_64

これらのパッケージを見ると、どの数字がパッケージ名の一部で、どの数字がバージョンそしてリリースRPM では、-これらを区切るためにダッシュ ( ) を使用します。ダッシュがない場合は、数字が名前の一部になります。

答え2

それは%{name}.%{arch}組み合わせです。これが同じであればアップグレードです。異なる場合は別のインストールです。

cAPI-3.1.6-x86_64つまり、と を同時にインストールできます。ただし、と を1 つのシステム上にcAPI-3.1.6-i386インストールすることはできません(非常に不正なトリックを使用しない限り)。cAPI-3.1.6-x86_64cAPI-2.1.7-x86_64

関連情報