如何在RHEL 8 Linux中安装EPEL REPO

时间:2020-01-09 10:40:54  来源:igfitidea点击:

如何在Red Hat Enterprise Linux服务器版本8.x或者CentOS Linux服务器版本8.x上安装诸如Fedora EPEL仓库之类的额外存储库?
如何在RHEL 8 Linux中安装EPEL REPO。
如何在CentOS 8 Linux中安装EPEL仓库。

什么是EPEL REPO?

企业Linux添加软件包(或者EPEL)是Fedora特殊兴趣小组,它创建,维护和管理一套高质量的企业Linux添加软件包,包括但不限于Red Hat Enterprise Linux(RHEL),CentOS和科学Linux(SL),Oracle Linux(OL)。

EPEL软件包通常基于与Fedora对应的软件包,并且永远不会与基本Enterprise Linux发行版中的软件包发生冲突或者替换。
EPEL使用了与Fedora相同的基础架构,包括构建系统,bugzilla实例,更新管理器,镜像管理器等等。

我们可以检查镜像列表以获取EPEL上可用的存储库列表

说明:

在撰写本文时,尚未发布CentOS 8,但本文假定在CentOS 8上可以执行相同的步骤。
如果我们有不同的经验,请在评论部分中告知我们。

在RHEL 8中安装EPEL仓库

EPEL Repo包含所有可用于在RHEL 8 Linux主机中安装epel repo的软件包和EPEL rpm。

因此,可以使用DNF/YUM/RPM手动安装EPEL repo rpm。

[root@rhel-8 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
warning: /var/tmp/rpm-tmp.URDkYa: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating/installing...
   1:epel-release-8-1                 ################################# [100%]

提示:

如果更改了EPEL发行版的rpm版本(epel-release-latest-8.noarch.rpm),则可以手动导航至Red Hat的EPEL Mirror Repo,并下载适用于RHEL 8的最新可用RPM版本。

在进行EPEL REPO时,我在尝试设置存储库时发现了一个错误"忽略Repo'epel'同步缓存失败"。

如何修复"无法同步存储库'epel'的缓存,而忽略此存储库。

" ?

在RHEL 8 Linux中安装EPEL repo后,清理现有缓存是一个好主意

[root@rhel-8 ~]# dnf clean all
Updating Subscription Management repositories.
16 files removed
[root@rhel-8 ~]# rm -rf /var/cache/dnf

接下来,我们可以使用以下命令检查Linux主机上可用存储库的列表

[root@rhel-8 ~]# dnf repolist
Updating Subscription Management repositories.
Extra Packages for Enterprise Linux $release - x86_64                                                             23 kB/s |  51 kB     00:02
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                         2.2 MB/s | 8.6 MB     00:03
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                            966 kB/s | 5.6 MB     00:05
Failed to synchronize cache for repo 'epel', ignoring this repo.
Last metadata expiration check: 0:00:03 ago on Sat 03 Aug 2019 12:12:13 AM IST.
repo id                                                  repo name                                                                         status
rhel-8-for-x86_64-appstream-rpms                         Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                          5,693
rhel-8-for-x86_64-baseos-rpms                            Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                             2,078

但是,正如我们其中看到的那样,我收到一个错误,无法同步存储库" epel"的缓存,而忽略了此存储库。
"然后,值得注意的另一件事是EPEL的存储库名称,它不包含发行版,而是包含变量我以为$release是导致此问题的原因

为了再次确认这一点,我还检查了他们的EPEL源rpm,它也包含相同的文件,其中他们或者错过更改$Release变量,或者包含更新的方式来处理该变量,但未正确实现。

我认为,由于RHEL 8是最近发布的,因此仍处于测试阶段,将来将发布更稳定的EPEL REPO。

但是现在要克服这种情况,我们可以在/etc/yum.repos.d/epel.repo中手动更改此变量,如下所示

[epel]
name=Extra Packages for Enterprise Linux $release - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/$release/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$release&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$release

[epel]
name=Extra Packages for Enterprise Linux 8 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/$release/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

提示:

我们也可以下载RHEL 8的EPEL REPO源rpm,修改`epel。

Repo内容并使用源rpm内容重建新的epel rpm。

但是请确保在生产环境中使用任何此类手动定制的rpm之前,先检查其GPL许可证。

接下来清理现有的仓库Repo并检查可用仓库列表

[root@rhel-8 ~]# dnf clean all
Updating Subscription Management repositories.
27 files removed
[root@rhel-8 ~]# rm -rf /var/cache/dnf
[root@rhel-8 ~]# dnf repolist
Updating Subscription Management repositories.
Extra Packages for Enterprise Linux 8 - x86_64                                                                    98 kB/s | 430 kB     00:04
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                         1.5 MB/s | 8.6 MB     00:05
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                            1.2 MB/s | 5.6 MB     00:04
repo id                                                  repo name                                                                         status
*epel                                                    Extra Packages for Enterprise Linux 8 - x86_64                                      310
rhel-8-for-x86_64-appstream-rpms                         Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                          5,693
rhel-8-for-x86_64-baseos-rpms                            Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                             2,078

因此,现在我们的EPEL存储库正在RHEL 8 Linux主机上运行。

接下来,我们可以在RHEL 8的EPEL REPO下验证可用RPMS的列表。

[root@rhel-8 ~]# dnf list | grep epel | less
epel-release.noarch                                  8-1                                                      @System
apachetop.x86_64                                     0.19.7-1.el8                                             epel
arj.x86_64                                           3.10.22-30.el8                                           epel
beecrypt.x86_64                                      4.2.1-23.el8                                             epel
beecrypt-apidocs.x86_64                              4.2.1-23.el8                                             epel
beecrypt-devel.x86_64                                4.2.1-23.el8                                             epel
bgpdump.x86_64                                       1.6.0-2.el8                                              epel
bird.x86_64                                          2.0.4-1.el8                                              epel
bird-doc.noarch                                      2.0.4-1.el8                                              epel
bodhi-client.noarch                                  4.0.2-2.el8.1                                            epel
bodhi-composer.noarch                                4.0.2-2.el8.1                                            epel
bodhi-server.noarch                                  4.0.2-2.el8.1                                            epel
<output trimmed>

因此,我们知道当前用于RHEL 8的EPEL REPO版本不是很稳定,我们的手动解决方法可以修复"忽略Repo'epel'同步缓存失败"。