
自分でビルドした複数の RPM で構成されるプロジェクトの依存関係を yum を使用して解決する際に問題が発生しています。次の内容で RPM をビルドしました:
Requires: Database-devel = 1.0.0
しかし、実行すると:
$ yum deplist Release/ConfigLoader-devel-4.0.1-0.191128.123053.g83eb.b.d.el7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* epel: epel.besthosting.ua
package: ConfigLoader-devel.x86_64 4.0.1-0.191128.123053.g83eb.b.d.el7
dependency: /bin/sh
provider: bash.x86_64 4.2.46-31.el7
dependency: Database-devel = 1.0.0
provider: Database-devel.x86_64 2.0.0-0.191126.123742.gb769.r
この依存関係のプロバイダー (最後の行) のバージョンは 2.0.0 であると示されています。次の追加情報により、Database-devel パッケージのバージョンが yum リポジトリで正しく設定されており、yum が選択できる 1.0.0 バージョンがあることが確認されます。
$ yum info Database-devel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* epel: epel.besthosting.ua
Available Packages
Name : Database-devel
Arch : x86_64
Version : 2.0.0
Release : 0.191126.123742.gb769.r
Size : 13 k
Repo : localrepo-oel7
$ yum info Database-devel-1.0.0-1
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* epel: epel.besthosting.ua
Available Packages
Name : Database-devel
Arch : x86_64
Version : 1.0.0
Release : 1
Size : 13 k
Repo : localrepo-oel7
問題は、ConfigLoader-devel RPM をインストールしようとすると、Database-devel 2.0.0 パッケージを取得してインストールしようとするため、ビルドが壊れてしまうことです。
私の yum バージョンは次のとおりです:
$ yum --version
3.4.3
Installed: rpm-4.11.3-35.el7.x86_64 at 2019-05-21 13:14
Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-10-30 19:27
Committed: Pavlina Moravcova Varekova <[email protected]> at 2018-06-19
Installed: yum-3.4.3-161.0.1.el7.noarch at 2019-06-05 11:27
Built : None at 2018-11-01 10:10
Committed: EL Errata <[email protected]> at 2018-10-31
Installed: yum-plugin-fastestmirror-1.1.31-50.el7.noarch at 2019-05-21 13:15
Built : CentOS BuildSystem <http://bugs.centos.org> at 2018-10-30 22:58
Committed: Michal Domonkos <[email protected]> at 2018-08-24
これをさらに診断するにはどうすればいいでしょうか?
答え1
おそらくパッケージには がDatabase-devel
提供されていますDatabase-devel
。次のようにして確認できます:
rpm -q Database-devel --provides
次のように記述する必要があります:
Database-devel = 2.0.0-0
また、次のようにも記載されている場合:
Database-devel
バージョン番号がない場合、これは に対して を意味しrpm
、したがって に対してはバージョン 1.0.0 を含む のyum
すべてのバージョンが提供されることを意味します。Database-devel
行を削除する必要があります
Provides: Database-devel
仕様ファイルから。各パッケージは自動的に独自の名前とバージョンを提供します。