rpm:パッケージが以前のパッケージを更新するか、別々にインストールするかを決定する要素

rpm:パッケージが以前のパッケージを更新するか、別々にインストールするかを決定する要素

ただインストールパスですか?この場合、名前/パスにバージョンがあるパッケージは他のパッケージを更新しないため、それはできません。手動の依存関係情報にはこれに対する言及はありません。 RPMの作成時に/usr/libの下に新しいパスを作成し、既存のパッケージを無視するのではなく、インストール時にcAPI-2.1.7-x86_64.rpmを更新する必要があることをcAPI-3.1.6-x86_64.rpmに通知するできますか?

答え1

基本的に同意する@msuchy関連機能はパッケージの組み合わせです。名前そして建築学、これはいくつかの概要を提供するのに役立ちます。

情報を探す場所は「アップグレード」ではありません。複数バージョンのインストール1つのパッケージ:

複数のインストールバージョン(rpm.org)は良い概要を提供します。

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

つまり、一般に、パッケージ名自体、またはパッケージ名とアーキテクチャの組み合わせという2つのオプションがあります。それは言い続ける

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

つまり、(パッケージ開発者)は、Linuxカーネルパッケージ内のすべてのファイルが異なる名前を持っている(ファイル名にバージョンが含まれているか、ファイルがバージョンを含むディレクトリにある)ことを知っているため、カーネルを特別に扱います。 。これは特別な状況です。特別なケースが多すぎると、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インストールできます。しかし、cAPI-3.1.6-i386システムにcAPI-3.1.6-x86_64ANDを使用することはできませんcAPI-2.1.7-x86_64(本当に汚れたトリックを使用しない限り)。

関連情報