我试图在我的 Fedora 22 机器上启用 EPEL 存储库,但我破坏了它,现在抛出错误

I attempted to enable the EPEL repo on my Fedora 22 machine and I broke it, now errors are thrown

我尝试通过 运行ning

在我的 Fedora 22 机器上启用 EPEL

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

然后

sudo rpm -ivh epel-release-7-5.noarch.rpm

现在当我 运行

dnf repolist

我得到以下内容

[sinux1@horrible-host ~]$ sudo dnf repolist
Extra Packages for Enterprise Linux 7 - x86_64  1.8 MB/s | 9.0 MB     00:05    
Failed to open: /var/cache/dnf/epel-2b6dfc5904c26562/repodata/49c4e3bd54f19136521be9b254830c954369cc22ce1b661db502ebef13b0004c-updateinfo.xml.bz2.
[sinux1@horrible-host ~]$ 

我被卡住了,不确定我的下一步是什么。我怎样才能扭转我所做的,启用 EPEL 的正确方法是什么? 感谢您的任何输入

我和 Sinux Tine 做了同样的事情,结果陷入了某种僵局。

首先尝试像 Rup 说的那样做。

如果一切 都失败了,请尝试以下作为最后的手段。它对我有用。

> su
> cd /var/cache/dnf/epel-2b6dfc5904c26562/repodata
> mkdir throwaway
> mv 49c4e3bd54f19136521be9b254830c954369cc22ce1b661db502ebef13b0004c-updateinfo.xml.bz2 throwaway

这有效地删除了 dnf 说它无法打开的文件。

如果问题得到解决,您可以删除一次性目录及其内容。

这似乎对我有用。

删除 epel 存储库

rm -rf /etc/yum.repos.d/epel*

然后尝试通过 dnf 安装 epel

dnf 全部清理 dnf 安装 epel-release

当前的 libsolv 版本没有 bz2 压缩。 解决方案:在libsolv中启用bunzip2压缩,基本上'yum update libsolv',然后重新安装epel-release。

为了补充 Centos 7 的答案,我执行了以下步骤:

下载 patched

libsolv-0.6.14-1.el7

安装它 sudo rpm -ivh libsolv-0.6.14-1.el7.centos.x86_64.rpm

如果我们得到与之前版本的冲突

warning: libsolv-0.6.14-1.el7.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 1b6f9f55: NOKEY
Preparing...                          ################################# [100%]
    file /usr/lib64/libsolv.so.0 from install of libsolv-0.6.14-1.el7.centos.x86_64 conflicts with file from package libsolv-0.6.11-1.el7.x86_64
    file /usr/lib64/libsolvext.so.0 from install of libsolv-0.6.14-1.el7.centos.x86_64 conflicts with file from package libsolv-0.6.11-1.el7.x86_64

我们继续删除以前的版本

sudo yum erase libsolv-0.6.11-1.el7.x86_64

并安装打补丁的 libsolv 包

sudo rpm -ivh libsolv-0.6.14-1.el7.centos.x86_64.rpm

我们需要重新安装 dnf 包管理器,因为它在删除 libsolv 后被删除,所以我们使用以下命令安装。

sudo yum install dnf

我们现在使用 sudo dnf repolist 验证它,给我们正确的输出。

Using metadata from Mon Jun 13 10:53:11 2016
repo id        repo name                   status
base           CentOS-7 - Base             9,007