是否有一个dnf repoquery --requires --resolve
选项可以让它像dnf install
自动一样在依赖项选项中进行选择?
问题
我需要使用没有sudo
权限且没有安装完全相同的现有软件包的系统来下载 RPM 及其所有递归依赖项以进行离线安装。这意味着我不能简单地使用,dnf install --downloadonly --destdir
因为它既需要sudo
权限,又只会下载当前系统上不存在的依赖项(我的目标系统有一个更有限的当前安装的列表)。因此,我必须手动递归地解析包的所有依赖项,然后将该 NEVRA 格式包列表传递给命令dnf download
。
但是,我发现当您使用 时dnf repoquery --requires --resolve {package}
,它会列出可以提供直接要求的所有可能的包,而不仅仅是像dnf install {package}
自动选择的“最佳”包。
问题示例
例如,dnf repoquery --requires --resolve curl
列出libcurl
和libcurl-minimal
,它们是冲突的包,并且是您为满足依赖性而需要选择的选项。追踪这一点,列出了可以通过和 的几个版本来满足dnf repoquery --deplist curl
要求。这与“ ”和“ ” 是彼此的替代选项这一想法相匹配。 与我运行时相比,它只是自动选择“最佳”依赖项并选择.libcurl >= {version}
libcurl-{version}
libcurl-minimal-{version}
libcurl
libcurl-minimal
dnf install curl
libcurl
libcurl-{version}
问题
因此,既然以dnf install {package}
某种方式自动选择要安装的需求的单个提供程序,当我似乎dnf install
由于sudo
权限限制而无法直接运行并且需要包含我正在执行下载的系统上已安装的依赖项时,我该如何查询以确定那是什么?
我也知道dnf download --resolve --alldeps
(来自 dnf 核心插件)将解决依赖关系,就像dnf install
解决需求时一样,但是我还需要修剪依赖关系及其分支,以处理某些事情,basesystem
例如dnf download
.