回答

回答

sqlite 3.4バージョンに依存するRHEL5にサードパーティのRPMパッケージをインストールしようとしています。 Yumによると、3.3.6がインストールされています。

sqlite 3.3.6に依存するインストール済みパッケージを一覧表示する方法はありますか?

答え1

回答

repoquery -q --installed --whatrequires sqlite

説明する

別のコマンドがありますが、rpm -q --whatrequires sqliteパッケージ名への依存関係のみを報告するため、実際には機能しません。

逆に、repoquery明示的でない依存関係も探します。マニュアルページから抜粋:

   --alldeps
          When used with --whatrequires, look for non-explicit dependencies in addition to explicit ones (e.g. files and Provides  in  addition  to  package  names).
          This is the default.

はい

パッケージを入手してくださいlibdb

# rpm -q --whatrequires libdb
no package requires libdb

を信頼するとrpmパッケージの依存関係がなく、libdb問題なく削除できます。しかし...

# yum remove -y libdb
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package libdb.x86_64 0:5.3.21-19.el7 will be erased
--> Processing Dependency: libdb(x86-64) = 5.3.21-19.el7 for package: libdb-utils-5.3.21-19.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: pam-1.1.8-12.el7_1.1.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: libdb-utils-5.3.21-19.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: cyrus-sasl-lib-2.1.26-20.el7_2.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-python-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: python-libs-2.7.5-39.el7_2.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-devel-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-build-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: iproute-3.10.0-54.el7_2.1.x86_64
--> Running transaction check
. . .
. . .
. . .
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected

ご覧のとおり、他のパッケージはパッケージに直接依存するのではなく、パッケージlibdbによって提供されるファイルに依存していますlibdb-5.3.so()(64bit)

最後に、使用されると、repoquery次のように実際のパッケージのリストが得られますlibdb

# repoquery -q --installed --whatrequires libdb
cyrus-sasl-lib-0:2.1.26-20.el7_2.x86_64
iproute-0:3.10.0-54.el7_2.1.x86_64
libdb-utils-0:5.3.21-19.el7.x86_64
pam-0:1.1.8-12.el7_1.1.x86_64
postfix-2:2.10.1-6.el7.x86_64
python-libs-0:2.7.5-39.el7_2.x86_64
rpm-0:4.11.3-17.el7.x86_64
rpm-build-libs-0:4.11.3-17.el7.x86_64
rpm-devel-0:4.11.3-17.el7.x86_64
rpm-libs-0:4.11.3-17.el7.x86_64
rpm-python-0:4.11.3-17.el7.x86_64

答え2

希望のrpmオプションは次のとおりです。

rpm -q --whatrequires sqlite

編集:他の回答/コメントのディスカッションに基づいて--installを追加しました

編集:rpmに無効なオプションなので削除されました --installed

答え3

dnf(yumの新しいバージョン)の場合は、次のことを試すことができます。また探してラッパーコマンド:

dnf repoquery --whatrequires sqlite

利用できない場合は、次のコマンドを使用してインストールできます。

dnf -y install dnf-plugins-core

答え4

あなたが本当に知りたいのは、「どのパッケージにsqlite-3.3.6が必要ですが、sqlite-3.4.zに満足していないのか」と思います。良い:

echo | yum upgrade sqlite

関連情報