解决 RPM 依赖关系虽然 rpm 知道每个归档文件所需的依赖关系,但不知道在哪里找到它们 。这是设计使然:rpm 仅适用于本地文件,必须具体告知它们的位置 。因此,如果你尝试安装单个 RPM 软件包,则 rpm 找不到该软件包的运行时依赖项时就会出错 。本示例尝试安装从 Fedora 软件包集中下载的软件包:
$ lspython3-elephant-0.6.2-3.fc30.noarch.rpm$ rpm -qpi python3-elephant-0.6.2-3.fc30.noarch.rpmName : python3-elephantVersion : 0.6.2Release : 3.fc30Architecture: noarchInstall Date: (not installed)Group : UnspecifiedSize : 2574456License : BSDSignature : (none)Source RPM : python-elephant-0.6.2-3.fc30.src.rpmBuild Date : Fri 14 Jun 2019 17:23:48 BSTBuild Host : buildhw-02.phx2.fedoraproject.orgRelocations : (not relocatable)Packager : Fedora ProjectVendor : Fedora ProjectURL : http://neuralensemble.org/elephantBug URL : https://bugz.fedoraproject.org/python-elephantSummary : Elephant is a package for analysis of electrophysiology data in PythonDescription :Elephant - Electrophysiology Analysis Toolkit Elephant is a package for theanalysis of neurophysiology data, based on Neo.$ rpm -qp --requires python3-elephant-0.6.2-3.fc30.noarch.rpmpython(abi) = 3.7python3.7dist(neo) >= 0.7.1python3.7dist(numpy) >= 1.8.2python3.7dist(quantities) >= 0.10.1python3.7dist(scipy) >= 0.14.0python3.7dist(six) >= 1.10.0rpmlib(CompressedFileNames) <= 3.0.4-1rpmlib(FileDigests) <= 4.6.0-1rpmlib(PartialHardlinkSets) <= 4.0.4-1rpmlib(PayloadFilesHavePrefix) <= 4.0-1rpmlib(PayloadIsXz) <= 5.2-1$ sudo rpm -i ./python3-elephant-0.6.2-3.fc30.noarch.rpmerror: Failed dependencies: python3.7dist(neo) >= 0.7.1 is needed by python3-elephant-0.6.2-3.fc30.noarch python3.7dist(quantities) >= 0.10.1 is needed by python3-elephant-0.6.2-3.fc30.noarch理论上,你可以下载 python3-elephant 所需的所有软件包,并告诉 rpm 它们都在哪里,但这并不方便 。如果 python3-neo 和 python3-quantities 还有其它的运行时要求怎么办?很快,这种“依赖链”就会变得相当复杂 。
存储库幸运的是,有了 dnf 和它的朋友们,可以帮助解决此问题 。与 rpm 不同,dnf 能感知到存储库 。存储库是程序包的集合,带有告诉 dnf 这些存储库包含什么内容的元数据 。所有 Fedora 系统都带有默认启用的默认 Fedora 存储库:
$ sudo dnf repolistrepo id repo name statusfedora Fedora 30 - x86_64 56,582fedora-modular Fedora Modular 30 - x86_64 135updates Fedora 30 - x86_64 - Updates 8,573updates-modular Fedora Modular 30 - x86_64 - Updates 138updates-testing Fedora 30 - x86_64 - Test Updates 8,458在 Fedora 快速文档中有 这些存储库 以及 如何管理 它们的更多信息 。
dnf 可用于查询存储库以获取有关它们包含的软件包信息 。它还可以在这些存储库中搜索软件,或从中安装/卸载/升级软件包:
$ sudo dnf search elephantLast metadata expiration check: 0:05:21 ago on Sun 23 Jun 2019 14:33:38 BST.============================================================================== Name & Summary Matched: elephant ==============================================================================python3-elephant.noarch : Elephant is a package for analysis of electrophysiology data in Pythonpython3-elephant.noarch : Elephant is a package for analysis of electrophysiology data in Python$ sudo dnf list *elephant*Last metadata expiration check: 0:05:26 ago on Sun 23 Jun 2019 14:33:38 BST.Available Packagespython3-elephant.noarch 0.6.2-3.fc30 updates-testingpython3-elephant.noarch 0.6.2-3.fc30 updates安装依赖项现在使用 dnf 安装软件包时,它将解决所有必需的依赖项,然后调用 rpm 执行该事务操作:
$ sudo dnf install python3-elephantLast metadata expiration check: 0:06:17 ago on Sun 23 Jun 2019 14:33:38 BST.Dependencies resolved.============================================================================================================================================================================================== Package Architecture Version Repository Size==============================================================================================================================================================================================Installing: python3-elephant noarch 0.6.2-3.fc30 updates-testing 456 kInstalling dependencies: python3-neo noarch 0.8.0-0.1.20190215Git49b6041.fc30 fedora 753 k python3-quantities noarch 0.12.2-4.fc30 fedora 163 kInstalling weak dependencies: python3-igor noarch 0.3-5.20150408git2c2a79d.fc30 fedora 63 kTransaction Summary==============================================================================================================================================================================================Install 4 PackagesTotal download size: 1.4 MInstalled size: 7.0 MIs this ok [y/N]: yDownloading Packages:(1/4): python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch.rpm 222 kB/s | 63 kB 00:00(2/4): python3-elephant-0.6.2-3.fc30.noarch.rpm 681 kB/s | 456 kB 00:00(3/4): python3-quantities-0.12.2-4.fc30.noarch.rpm 421 kB/s | 163 kB 00:00(4/4): python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch.rpm 840 kB/s | 753 kB 00:00----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Total 884 kB/s | 1.4 MB 00:01Running transaction checkTransaction check succeeded.Running transaction testTransaction test succeeded.Running transaction Preparing : 1/1 Installing : python3-quantities-0.12.2-4.fc30.noarch 1/4 Installing : python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch 2/4 Installing : python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch 3/4 Installing : python3-elephant-0.6.2-3.fc30.noarch 4/4 Running scriptlet: python3-elephant-0.6.2-3.fc30.noarch 4/4 Verifying : python3-elephant-0.6.2-3.fc30.noarch 1/4 Verifying : python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch 2/4 Verifying : python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch 3/4 Verifying : python3-quantities-0.12.2-4.fc30.noarch 4/4Installed: python3-elephant-0.6.2-3.fc30.noarch python3-igor-0.3-5.20150408git2c2a79d.fc30.noarch python3-neo-0.8.0-0.1.20190215git49b6041.fc30.noarch python3-quantities-0.12.2-4.fc30.noarchComplete!
推荐阅读
- 泉州市标准化协会关于《南安石亭绿茶加工技术规程》团体标准征求意...
- 倒茶的礼仪及关于茶叶的名词详细介绍
- 紫砂神秘妆容:包浆
- 扒一扒《三十而已》里面贵妇的包包
- 普洱茶龙珠包得这么紧你怎么能很快吸收味道呢
- 怎么正确挑选紫包菜
- 吃面包上火吗?面包的营养价值有哪些?
- 一张图理解网络的几个专有名词:数据、段、包、帧、比特
- php闭包有什么用?
- 你知道多少关于茶进化的段落
