rpmのインストール/アップグレード方法に関する質問

rpmのインストール/アップグレード方法に関する質問

パッケージの命名規則を説明するとき、私の教科書で引用した内容は次のとおりです(例:packagename-abc-x.arch.rpm)。

バージョン番号:バージョン番号(x)の後の数字はビルド番号です。多くのデプロイメント・マネージャーは、自分のパッケージを他のパッケージと区別するために、ビルド番号に文字コードを追加します。この数値はパッケージマネージャ間で比較できません。 Georgeのパッケージビルド番号5は、必ずしも同じパッケージのSusanのビルド番号4よりも改善されているわけではありません。

パッケージのアップグレードを説明する引用は次のとおりです。

警告する:同じプログラムを別の名前で配布できます。この場合、アップグレードが失敗したり、重複したインストールによって奇妙なプログラム関連の障害が発生する可能性があります。 Red Hat は、このような問題を回避するために正式なパッケージ命名システムを説明していますが、まだ時々発生します。したがって、元のパッケージを提供した人または組織の後続のバージョンを使用してパッケージをアップグレードするのが最善です。

Q-1したがって、quote-1によると、ビルド番号はそのリリースに関連する特定の文字に関連付けられています。管理者、名前が違ってアップグレードが失敗することがありますか?現在のインストールのアップグレード版であるかどうかはわかりませんか?

Q-2しかし、リリース/名前が同じ場合、rpmはアップグレードされたバージョンであるかどうかを判断しますか?パッケージ名を解析し、名前からバージョン番号を選択しますか?では、他のディストリビューションではなぜ失敗するのですか?しかも?

ベストアンサー1

ビルド番号をリリースといいます。たとえば、python-qt5-5.10-3.fc28.x86_64名前は「python-qt5」、バージョンは「5.10」、リリースは「3.fc28」、最後のアーキテクチャは「x86_64」です。

GeorgeやSusanが送った手紙をよく「distタグ」といいます。上記の例では「.fc28」です。同じバージョンとリリースの複数のパッケージを区別するために使用されます。たとえば、Fedora 28のpython-qt5はファイルを保存しますが、ディレクトリにpythonモジュールが/usr/lib64/python2.7/site-packages必要なため、RHEL6では機能しません。/usr/lib64/python2.6したがって、RHEL6バージョンの同じパッケージは次のようになります。python-qt5-5.10-3.el6.x86_64

RPM自体は名前、バージョン、およびリリースのみを比較します。 Fedora 28パッケージをRHEL7にインストールできない理由はありません。通常、他の依存関係のために機能しません。たとえば、python-qt5-5.10-3.fc28.x86_64バージョンをアップグレードしようとすると、python-qt5-5.10-4.el7.x86_64libQT * .soのSONAMEがRHEL7と異なるため、機能しない可能性があります。ただし、要件がない(または非常に緩い要件)、一部のパッケージに対してこれを行うと、「4.el7」が「3.fc28」よりも大きいため、rpm自体からアップグレードできます。問題は、rpmパッケージ作成者が自分のパッケージを他のプラットフォームにインストールすることを意図していないことです(テストもしません)。ほとんど動作しませんが、ほとんどの場合動作しません。

おすすめ記事