首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确定DNF冲突包原因的反向依赖关系

确定DNF冲突包原因的反向依赖关系
EN

Unix & Linux用户
提问于 2018-11-27 16:34:50
回答 1查看 3.2K关注 0票数 3

最近,我试图在我的(fedora 27,x64)机器上更新一些软件包,dnf抱怨说这与此相冲突。然而,我不知道如何让dnf告诉我冲突的原因,这个相关的问题说我应该用--best来解决问题,但这仍然不能告诉我为什么一个看似不冲突的情况被认为是冲突。

这个问题的TL;DR是:how,我是否得到了 dnf to,告诉我哪些包是冲突的,哪些相关的受抚养人是?

以下是冲突:

代码语言:javascript
运行
复制
$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

代码语言:javascript
运行
复制
  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应该做这件事;但是输出是:

代码语言:javascript
运行
复制
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应该给我想要的输出。上面写着:

代码语言:javascript
运行
复制
i3status-0:2.12-1.fc27.x86_64

哪个包最初是作为我想更新的包列出的,但正如上面已经指出的,这取决于libconfuse-3.2-3.fc27.x86_64提供的D18。换句话说,根据这一产出,不应发生冲突。我在这里错过了什么?

EN

回答 1

Unix & Linux用户

发布于 2020-10-15 09:33:51

下面的命令将返回一个依赖于 list 的<>已安装的包的列表,以及它们所依赖的确切版本和体系结构:

代码语言:javascript
运行
复制
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替换>的外观,否则就无法工作)

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/484479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档