DNF競合パッケージの原因を特定するための逆依存性

DNF競合パッケージの原因を特定するための逆依存性

私は最近私の(fedora 27、x64)コンピュータでいくつかのパッケージを更新しようとしましたが、クラッシュについて文句を言いdnfました。しかし、dnf紛争の原因をどのように言うべきかわかりません。この関連質問--best使うべきだと言いました。解決する質問がありますが、まだわからないなぜ紛争がないと思われる状況は紛争と見なされます。

この質問の概要は次のとおりです。dnf競合するパッケージと関連する依存関係は何であるか、どうすればわかりますか?

以下は衝突状況です。

$dnf update
Last metadata expiration check: 1:49:45 ago on Tue 27 Nov 2018 03:16:34 PM CET.
Dependencies resolved.

 Problem: problem with installed package i3status-2.12-1.fc27.x86_64
  - package i3status-2.12-1.fc27.x86_64 requires libconfuse.so.1()(64bit), but none of the providers can be installed
  - cannot install both libconfuse-3.2.2-1.fc27.x86_64 and libconfuse-3.2-3.fc27.x86_64
  - cannot install both libconfuse-3.2-3.fc27.x86_64 and libconfuse-3.2.2-1.fc27.x86_64
  - cannot install the best update candidate for package libconfuse-3.2-3.fc27.x86_64

私はdnf --deplist infoそれがi3status-2.12-1.fc27.x86_64次にあることを発見しましたlibconfuse-3.2-3.fc27.x86_64

  dependency: libconfuse.so.1()(64bit)
   provider: libconfuse-3.2-3.fc27.x86_64

しかし、私は一生の間にどんなものが古いlibconfuse-3.2.2-1.fc27.x86_64バッグにかかっているのかを理解することはできません。インストールされているパッケージの逆依存性は検索が簡単だと思いますが、解決策を提示しますここ指示はdnf repoquery --available --alldeps --source --whatrequires libconfuse-3.2.2-1.fc27.x86_64トリックを実行する必要がありますが、出力は次のとおりです。

Last metadata expiration check: 1:59:58 ago on Tue 27 Nov 2018 03:16:34 PM CET.
libconfuse-3.2.2-1.fc27.src.rpm

そして、このrpmにはまったく依存関係がありません。つまり、これを要求する唯一のパッケージはパッケージ自体ですが、常に発生するわけではないので、このリストはある意味では不完全だと考えられます。dnf repoqueryもっと深く掘り下げると、これはdnf repoquery --all --installed --whatrequires libconfuse私が望む結果を得ることができることを知っていました。これは言う:

i3status-0:2.12-1.fc27.x86_64

どのパッケージが最初に更新したいパッケージとしてリストされているかによって異なりますが、上記ですでに指摘したように、これはこの出力に矛盾があってはなりませlibconfuse.so.1()(64bit)libconfuse-3.2-3.fc27.x86_64。私がここで何を見逃しているのでしょうか?

答え1

次のコマンドはリストを返します。インストール済み依存パッケージ難読化ライブラリそして、彼らが依存する正確なバージョンとアーキテクチャは次のとおりです。

sudo dnf repoquery --whatdepends libconfuse \
--queryformat "%{name}.%{arch} %{version}-%{release}" 2>/dev/null \
| grep -F -f <(sudo dnf list installed \
| tr -s '[[:space:]]' | cut -d ' ' -f-2) \
| xargs -L1 sudo dnf repoquery --deplist 2>/dev/null \
| grep 'package\|libconfuse'

(必ず交換してください。両方~の出現難読化ライブラリバージョン番号のないライブラリ名dnfと競合があります。そうでなければ実行できません。)

関連情報