ディストリビューション全体にわたるパッケージのバージョン管理 [閉じる]

ディストリビューション全体にわたるパッケージのバージョン管理 [閉じる]

目標は、Fedora、CentOS、RedHatなどのRPMベースのディストリビューションでパッケージのバージョンを識別することです。アップストリームバージョンがすべてのディストリビューションで同じであると信じることはできますか?それでは、コマンドラインからアップストリームバージョン番号をどのように検索(RPMまたはDEB)しますか?


質問で投稿できません -->

.specファイルに自動依存関係が指定されている場合、rpm -qp -requires .rpmにリストされているこれらの依存関係は仮想パッケージです。これらの仮想パッケージはライブラリsonameではなく、仮想パッケージ名だけです(sonameのように見えますが)。

たとえば、Fedora 27ではこれが機能します。

$ rpm -q --whatprovides "libQt5Core.so.5()(64bit)"        
qt5-qtbase-5.9.2-5.fc27.x86_64   

しかし、これはそうではありません

$ rpm -q --whatprovides libQt5Core.so.5
no package provides libQt5Core.so.5
$ rpm -q --whatprovides libQt5Core
no package provides libQt5Core
$ rpm -q --whatprovides Qt5Core
no package provides Qt5Core

自分の.rpm自体がこれらのライブラリをバンドルしている場合(つまり、これらの仮想パッケージを提供する場合)、これらの仮想パッケージがパッケージに付属しているため、システムにインストールされていない場合、RPMは文句を言いません。

ベストアンサー1

各ディストリビューションには独自の開発サイクルがあるため、常に特定のパッケージの同じアップストリームバージョンを使用する(すべての)Linuxディストリビューションに頼ることはできません。

ディストリビューション全体でパッケージ名に多くの共通点がありますが、これは保証されません。経験的に、パッケージ名は、ディストリビューションと派生したすべてのダウンストリームディストリビューションでデフォルトで同じです。たとえば、DebianとUbuntu、RedhatとCentOSを考えてみましょう。

おすすめ記事