CentOS7 下安装 DNF 的方法

栏目: 服务器 · 发布时间: 6年前

内容简介:NOTE(simon): 讲啰嗦一点,方便搜索引擎收录关键字。需要解决方案的同学,可以直接拖到后半部分。不知道什么原因,CentOS 7 下面安装 dnf 总是要出错,各种各样的问题与不兼容。CentOS 直到现在,还没有正式支持 dnf。相反,Fedora 22 开始就已经正式支持 dnf 作为默认的包管理工具了。差距啊。之前试过用一个半官方的 dnf repo(

NOTE(simon): 讲啰嗦一点,方便搜索引擎收录关键字。需要解决方案的同学,可以直接拖到后半部分。

旧办法不灵

不知道什么原因,CentOS 7 下面安装 dnf 总是要出错,各种各样的问题与不兼容。CentOS 直到现在,还没有正式支持 dnf。相反,Fedora 22 开始就已经正式支持 dnf 作为默认的包管理 工具 了。差距啊。

之前试过用一个半官方的 dnf repo( rpmsoftwaremanagement/dnf-nightly Copr ) 在 CentOS 7 下面安装 dnf,一直都是可以的。也可以正常升级。以前通过这个办法安装过 dnf 的系统,已经升级到 2.8.5。用起来很顺。

但是不知道为什么,最近用这个库,在全新的 CentOS 7 下面安装 dnf,遇到一个麻烦,就是包版本有冲突。类似的错误信息如下。

# yum install -y dnf-2.8.5-0.101g0f20917d.el7.centos
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.shu.edu.cn
 * epel: mirrors.yun-idc.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Resolving Dependencies
--> Running transaction check
---> Package dnf.noarch 0:2.8.5-0.101g0f20917d.el7.centos will be installed
--> Processing Dependency: python2-dnf = 2.8.5-0.101g0f20917d.el7.centos for package: dnf-2.8.5-0.101g0f20917d.el7.centos.noarch
--> Running transaction check
---> Package python2-dnf.noarch 0:2.8.5-0.101g0f20917d.el7.centos will be installed
--> Processing Dependency: rpm-plugin-systemd-inhibit for package: python2-dnf-2.8.5-0.101g0f20917d.el7.centos.noarch
--> Running transaction check
---> Package rpm-plugin-systemd-inhibit.x86_64 0:4.11.3-32.el7 will be installed
--> Processing Conflict: python2-librepo-1.9.2-2gc670c6b.el7.x86_64 conflicts python2-dnf < 2.8.8
--> Finished Dependency Resolution
Error: python2-librepo conflicts with python2-dnf-2.8.5-0.101g0f20917d.el7.centos.noarch
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

重点在这句, librepo-1.9.2-2gc670c6b.el7.x86_64 conflicts python2-dnf < 2.8.8

版本依赖关系树中提到的 python2-dnf 2.8.8 ,在 repo 中尚未发布。很明显的,dnf 2.8.5 依赖 python 2-dnf 2.8.5 才对。事实也是,python2-dnf 最新的版本号是 2.8.5。

无论如何也解决不了这个难题。毕竟人家是 nightly,夹带一点私货也正常。

难道只能 build from source?不科学。dnf 是自展的,编译 dnf 需要用到 dnf。可手里是全新 CentOS 7。

  • 半官方的 dnf nightly repo。FAILED
  • build from source。FAILED

解决办法

然后,在找 dnf 2.7.5 rpm 的时候,被我发现一个隐藏的 repo。也算是半官方的吧。亲测可用。完美。用法如下。

NOTE(simon): 2018-10-09 亲测有效

cat <<EOF > /etc/yum.repo.d/another-dnf.repo
[another-dnf]
name=Another DNF Repo by CentOS.
baseurl=https://cbs.centos.org/repos/configmanagement7-dnf-common-release/\$basearch/os/
type=rpm-md
skip_if_unavailable=True
gpgcheck=0
repo_gpgcheck=0
enabled=1
enabled_metadata=1
EOF
yum clean all
yum makecache fast
yum install -y dnf dnf-conf dnf-automatic dnf-plugins-core

这是个 ConfigManagement SIG 的社区项目,但是没有用 ConfigManagement SIG 的 GPG 证书签名,也没有出现在社区 wiki ( SpecialInterestGroup/ConfigManagementSIG - CentOS Wiki ) 中,我理解属于边缘项目。不过依赖有效,能直接安装。

啥都不说了,只希望这次这个 dnf 的 repo 坚持久一点。

思考

为什么 dnf 这么棒的工具在 Fedora 里面有,在 CentOS 里面就没有?我猜测,主要还是考虑稳定性。毕竟 CentOS 一直的策略都是以降级保稳定。dnf 还没过官方的考验期,所以一直没予以替换。既往所有的 repo 都是非官方的,最多也只能算是半官方的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

娱乐至死

娱乐至死

[美] 尼尔·波兹曼 / 章艳 / 广西师范大学出版社 / 2011-6 / 29.80元

《娱乐至死》是对20世纪后半叶美国文化中最重大变化的探究和哀悼:印刷术时代步入没落,而电视时代蒸蒸日上;电视改变了公众话语的内容和意义;政治、宗教、教育和任何其他公共事务领域的内容,都不可避免的被电视的表达方式重新定义。电视的一般表达方式是娱乐。一切公众话语都日渐以娱乐的方式出现,并成为一种文化精神。一切文化内容都心甘情愿地成为娱乐的附庸,而且毫无怨言,甚至无声无息,“其结果是我们成了一个娱乐至死......一起来看看 《娱乐至死》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试