修复"没有启用的存储库"并在RHEL 7和8中创建本地存储库

时间:2020-02-23 14:40:35  来源:igfitidea点击:

该系统没有可通过订阅使用的存储库。
解决了没有启用的存储库。
如何配置RHEL以执行无订阅的yum安装。
没有启用的Repooracle linux。
centos 7 yum存储库。
rhel 7的yum存储库。
找不到yum存储库。
yum在redhat 7中不起作用。
如何修复RHEL 7中没有启用的存储库。
yum没有启用的Repo中心。
7. yum repolist未显示Repo。
修复没有启用的仓库。

本文使用yum创建本地存储库,并修复了在使用RHEL 7RHEL 8时未写入启用的仓库错误,因此可以肯定地说它也全面涵盖了CentOS 7和8 ,Fedora,Oracle Enterprise Linux以及整个Red Hat操作系统家族,可能还有Novell的SLES和OpenSUSE。

不订阅即可进行YUM安装的准备工作

" YUM"(Yellowdog Updater,已修改)用于安装rpm。
我们必须有权访问RHEL 7.X或者RHEL 8.X发行版的原始DVD,通过它们可以安装各自的Linux主机,以创建本地存储库。

如何修复"没有启用的仓库"?

在未订阅卫星订阅网络的Red Hat Linux节点(RHEL 7或者RHEL8或者其他RHEL发行版)上,我们可能会遇到此错误。

Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
There are no enabled repos.
Run "yum repolist all" to see the repos you have.
You can enable repos with yum-config-manager --enable

这意味着我们尚未在Red Hat Satellite Network中注册Linux节点。
这需要一个"非免费"的有效Red Hat订阅,因此在他们的实验室环境中,许多用户倾向于创建本地存储库,他们可以使用它们访问rpm,而不必担心依赖关系。

在本文中,将介绍"创建本地存储库的步骤"(离线意味着可以不通过Internet访问),可以通过yum进行使用而无需订阅。

错误"没有启用的存储库"将在RHEL发行版的所有变体中普遍存在,并且"以下提供的RHEL 7修复将适用于所有较旧的RHEL发行版"。

在RHEL 7上创建本地存储库

创建本地存储库的第一步是将RHEL 7 DVD ISO复制到临时位置的Linux主机上。

提示:

我们也可以使用虚拟iso介质挂载RHEL 7 DVD ISO,而不是将其复制到RHEL 7服务器。

其中我将在RHEL 7 Linux主机上创建本地存储库

rhel-7-node:/etc/yum.repos.d # cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4 (Maipo)

将RHEL 7安装DVD安装在安装点上。
对于本文,我已将RHEL 7 ISO复制到/tmp下。
我们将这个ISO挂载在/mnt上,它将作为创建本地yum仓库的临时挂载点。

# mount -o loop /ISS/rhel-server-7.4-x86_64-dvd.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only

或者

如果我们已经虚拟安装了RHEL 7 ISO DVD,则可以在/dev/cdrom或者/dev/srX下访问ISO DVD,这里的路径可能取决于发行类型或者可用的循环设备而有所不同,因此我们必须手动检查。
我们可以使用lsblk或者lssci命令获取RHEL 7 ISO的挂载点

例如:

[root@rhel-8-node ~]# lsscsi
[0:0:0:0]    cd/dvd  VBOX     CD-ROM           1.0   /dev/sr0
[1:0:0:0]    cd/dvd  VBOX     CD-ROM           1.0   /dev/sr1
[2:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sda
[3:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sdb
[6:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sdc

这里有两张CD-ROM,分别是/dev/sr0和/dev/sr1.

接下来,我将使用此路径并将其安装在另一个安装点上,以便能够访问RHEL 7 DVD的内容,以便创建本地存储库。

# /mount /dev/sr0 /mnt

现在,我们已经将RHEL 7 ISO DVD安装在/mnt上。

接下来,请检查DVD的内容,因为我们将相应地准备yum repo文件。

rhel-7-node:~ # cd /mnt
rhel-7-node:/mnt # ls -l
total 934
dr-xr-xr-x 4 root root   2048 May 11  2016 addons
-r--r--r-- 1 root root     56 May 11  2016 .discinfo
dr-xr-xr-x 3 root root   2048 May 11  2016 EFI
-r--r--r-- 1 root root   8266 Apr  4  2014 EULA
-r--r--r-- 1 root root   1455 May 11  2016 extra_files.json
-r--r--r-- 1 root root  18092 Mar  6  2012 GPL
dr-xr-xr-x 3 root root   2048 May 11  2016 images
dr-xr-xr-x 2 root root   2048 May 11  2016 isolinux
dr-xr-xr-x 2 root root   2048 May 11  2016 LiveOS
-r--r--r-- 1 root root    114 May 11  2016 media.repo
dr-xr-xr-x 2 root root 901120 May 11  2016 Packages
dr-xr-xr-x 2 root root   4096 May 11  2016 repodata
-r--r--r-- 1 root root   3375 Jun 29  2016 RPM-GPG-KEY-redhat-beta
-r--r--r-- 1 root root   3211 Jun 29  2016 RPM-GPG-KEY-redhat-release
-r--r--r-- 1 root root   1796 May 11  2016 TRANS.TBL
-r--r--r-- 1 root root   1900 May 11  2016 .treeinfo

我们需要查找repodata目录,这意味着Packages的yum存储库文件位于/mnt下,因此这将是我们的baseurl

让我告诉你这将意味着什么。
接下来,我们需要在/yum.repos.d下创建一个repo文件。

创建yum存储库文件

现在要使用没有订阅的yum install,我们需要一个repo文件。
浏览/etc/yum.repos.d并创建一个以.repo为扩展名的新文件。
我们可以为文件指定任何名称。
对于本文,我将使用rhel-dvd.repo

rhel-7-node:/etc/yum.repos.d # cat rhel-dvd.repo
[rhel-7-dvd]
name = RHEL 7 ISO DVD
baseurl = file:///mnt
enabled = 1
gpgcheck = 0

接下来清理所有现有存储库的缓存,因为这将导致在尝试使用无订阅的yum install时导致不必要的失败消息

rhel-7-node:/etc/yum.repos.d # yum clean all
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: rhel-7-dvd
Cleaning up everything

接下来,列出RHEL 7 Linux节点上的可用yum存储库:

rhel-7-node:/etc/yum.repos.d # yum repolist
Loaded plugins: product-id, search-disabled-repos, subscription-manager
rhel-7-dvd                                                                                     | 4.1 kB  00:00:00
(1/2): rhel-7-dvd/group_gz                                                                     | 137 kB  00:00:00
(2/2): rhel-7-dvd/primary_d                                                                    | 4.0 MB  00:00:00
repo id                           repo name                                                                status
rhel-7-dvd                        RHEL 7 ISO DVD                                                            4,986
repolist: 4,986

现在,我们的yum存储库已配置完毕,我们将不会出现"没有启用启用的存储库"错误,因此我们可以尝试使用yum install <rpm_name>安装任何rpm(此存储库中可用)。

另请阅读:

如何在RHEL/CentOS 7中使用DVD和HTTP或者Apache服务器通过网络配置脱机yum存储库

在RHEL 8上创建本地存储库

与RHEL 7类似,我们必须在RHEL 8 Linux主机上复制RHEL ISO DVD,以使用yum安装而不需要在临时位置进行订阅。
如果我们有虚拟介质,则还可以将RHEL 8 ISO挂载到虚拟介质,然后再将其挂载到挂载点,例如/mnt

这里我有一个RHEL 8 Beta Linux主机

[root@rhel-8-node ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 Beta (Ootpa)

接下来,我们将RHEL 8 DVD安装在/mnt上。
因为对于RHEL 7,我们已经将ISO复制到了主机,所以其中我们将执行另一种情况,即,我已经将RHEL 8 ISO挂载到了虚拟介质,并且可以通过/dev/sr0获得。

因此,让我在/mnt上安装/dev/sr0才能访问RHEL 8 ISO内容:

[root@rhel-8-node ~]# mount -o loop /dev/sr0 /mnt

验证RHEL 8 ISO是否正确安装:

[root@rhel-8-node ~]# mount | grep mnt
/dev/sr0 on /mnt type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)

接下来,检查RHEL 8 ISO DVD的内容,因此我们将创建yum存储库。
如我们所见,我们在/mnt下没有repodata目录。

[root@rhel-8-node mnt]# ls -l
total 11
dr-xr-xr-x 4 root root 2048 Nov 13  2016 AppStream
dr-xr-xr-x 4 root root 2048 Nov 13  2016 BaseOS
dr-xr-xr-x 3 root root 2048 Nov 13  2016 EFI
dr-xr-xr-x 3 root root 2048 Nov 13  2016 images
dr-xr-xr-x 2 root root 2048 Nov 13  2016 isolinux
-r--r--r-- 1 root root  442 Nov 13  2016 TRANS.TBL

但是相反,我们在/mnt/AppStream下有repodata和Packages。

[root@rhel-8-node mnt]# ls -l AppStream/
total 934
-r--r--r-- 1 root root   8266 Sep 27  2016 EULA
-r--r--r-- 1 root root  18092 Sep 27  2016 GPL
dr-xr-xr-x 2 root root 915456 Nov 13  2016 Packages
dr-xr-xr-x 2 root root   2048 Nov 13  2016 repodata
-r--r--r-- 1 root root   3375 Sep 27  2016 RPM-GPG-KEY-redhat-beta
-r--r--r-- 1 root root   6636 Sep 27  2016 RPM-GPG-KEY-redhat-release
-r--r--r-- 1 root root    904 Nov 13  2016 TRANS.TBL

同样,我们在/mnt/BaseOS下有另一个repodata和Packages目录。

[root@rhel-8-node mnt]# ls -l BaseOS/
total 336
-r--r--r-- 1 root root   8266 Sep 27  2016 EULA
-r--r--r-- 1 root root  18092 Sep 27  2016 GPL
dr-xr-xr-x 2 root root 303104 Nov 13  2016 Packages
dr-xr-xr-x 2 root root   2048 Nov 13  2016 repodata
-r--r--r-- 1 root root   3375 Sep 27  2016 RPM-GPG-KEY-redhat-beta
-r--r--r-- 1 root root   6636 Sep 27  2016 RPM-GPG-KEY-redhat-release
-r--r--r-- 1 root root    904 Nov 13  2016 TRANS.TBL

与RHEL 7 ISO相比,RHEL 8 DVD的体系结构有所不同。

创建yum存储库文件

接下来,我们将创建一个yum存储库文件,该文件位于RHEL 8 ISO下的Packages位置,以便能够使用yum install而无需订阅。

其中我创建了rhel_dvd.repo文件,其内容如下:

[root@rhel-8-node ~]# cat /etc/yum.repos.d/rhel_dvd.repo
[rhel_dvd_baseos]
name=rhel dvd baseos
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[rhel_dvd_appstream]
name=rhel dvd appstream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

由于我们在RHEL 8 ISO下有两个存储库位置,因此我们提供了两个baseurl和详细信息。

接下来,在开始使用没有订阅的yum安装之前,让我们清除yum存储库缓存

[root@rhel-8-node ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 files removed

接下来列出可用的存储库:

[root@rhel-8-node ~]# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:00:30 ago on Sun 23 Jun 2019 05:03:45 PM IST.
repo id                                   repo name                                  status
rhel_dvd_appstream                        rhel dvd appstream                         4,594
rhel_dvd_baseos                           rhel dvd baseos                            1,686

YUM替代品-DNF

我们也可以使用dnf命令而不是yum命令来执行不带订阅的yum安装。
例如:

列出可用的存储库:

[root@rhel-8-node ~]# dnf repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:01:19 ago on Sun 23 Jun 2019 05:03:45 PM IST.
repo id                                   repo name                                  status
rhel_dvd_appstream                        rhel dvd appstream                         4,594
rhel_dvd_baseos                           rhel dvd baseos                            1,686

同样,要安装rpm及其依赖项,请使用

# dnf install

说明:

这些与安装有关的更改不是永久性的,在重新启动后将丢失。

要使这些更改在重启后保持不变,我们可以在/etc/fstab中添加以下行

/dev/sr0        /mnt            iso9660         defaults        0 0