dnf根据这些说明安装:
yum install epel-release -y
yum install dnf
Run Code Online (Sandbox Code Playgroud)
之后dnf --version工作正常,但dnf repolist或其他任何东西都给出:
Extra Packages for Enterprise Linux 7 - x86_64 668 kB/s | 9.4 MB 00:14
Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/e8...19-updateinfo.xml.bz2.
Run Code Online (Sandbox Code Playgroud)
而跑步dnf clean all并不能解决这个问题。
似乎有关于此的错误报告,没有解决方案。
有什么方法可以dnf在 CentOS 7 上工作吗?
我不确定为什么会这样,但看起来 epel-release 存储库(从您安装的位置dnf)与dnf自身不兼容。安装后dnf,首先使用yum以下方法删除它:
yum remove epel-release
Run Code Online (Sandbox Code Playgroud)
在那之后:
dnf repolist
dnf list installed
Run Code Online (Sandbox Code Playgroud)
等工作(至少在我的 CentOS 7 系统上)。
该问题可能与已安装的 libsolv 版本不支持 bzip2 压缩有关。像我一样,您可能没有安装最新版本,因为在 repo 配置文件中设置了优先级。
无法打开:/var/cache/dnf/x86_64/7/x86_64/7/epel/...xml。bz2
请参阅错误报告1258416。
libsolv-0.6.14-1.el7 已被推送到 Fedora EPEL 7 稳定存储库。如果问题仍然存在,请在此错误报告中注明。
CentOS 软件base库安装的 libsolv是 0.6.11-1.el7,但里面的那个epel是 0.6.14-1.el7。
yum --showduplicates --disablerepo=base list libsolv
Installed Packages
libsolv.x86_64 0.6.11-1.el7 @base
Available Packages
libsolv.x86_64 0.6.14-1.el7 epel
Run Code Online (Sandbox Code Playgroud)
解决方案
从epel存储库安装 libsolv 。
yum --disablerepo=base install libsolv-0.6.14-1.el7
Run Code Online (Sandbox Code Playgroud)
编辑:2016-06-17
正如评论中所见,这仍然是包存储库的一个活跃错误。这是因为libsolv在 EPEL中被标记为“已退休”而没有任何解释(Theodor van Nahl)。丹尼斯M.Pöpperl指出的是,这已经似乎已经在CentOS的和RHEL一直致力于版本的RPM包都可以在这里在Fedora的构建系统。
| 归档时间: |
|
| 查看次数: |
6667 次 |
| 最近记录: |