使用yum命令将CentOS-Base仓库添加到[容器] UBI7映像中

首先

在使用 UBI7 作为基础映像创建容器时,我想要安装一些不存在于 UBI 存储库中的软件包。

在使用 UBI7 之前,我使用的是 centos:7。例如,可以通过 yum install epel-release 安装 epel,但在使用 UBI 时则不能这样。

为了像CentOS7一样使用yum,我决定设置基本的、附加的以及其他一些像CentOS一样默认提供的仓库,并将它们留下来。

基本所得保障(UBI)的概念是什么?

这篇文章非常易懂。

如果在RedHat系的发行版中使用轻量级容器映像,我认为选择使用UBI(Universal Base Image)是不会错的。

CentOS系列的镜像容量总是很大,就是无法避免的。

获得UBI7镜像的方法

在 RedHat 网页上搜索可以找到。

如果是UBI7的话

podman pull registry.access.redhat.com/ubi7/ubi

在使用yum时需要注意的事项

如果直接运行yum install ,可能会从RHEL的仓库中安装。

在这种情况下,为了避免发生许可费用,最好将yum插件subscription-manager关闭。

停用订阅管理器的方法1

将该参考链接中的两个选项都涵盖,只需要在yum命令后加上–disableplugin=subscription-manager选项即可禁用。

然而,在这种情况下,如果忘记添加选项会出事故,所以下面的方法可能更好吧?

2种取消订阅管理器的方法

将/etc/yum/pluginconf.d/subscription-manager.conf中的enable设置为0。

echo -e "[main]\nenabled=0" > /etc/yum/pluginconf.d/subscription-manager.conf

UBI7默认状态的yum仓库清单

当然,没有CentOS系列的仓库。

 yum repolist
repo id                          repo name
ubi-7/x86_64                      Red Hat Universal Base Image 7 Server (RPMs)
ubi-7-rhah/x86_64                 Red Hat Universal Base Image Atomic Host (RPMs)
ubi-7-server-extras-rpms/x86_64   Red Hat Universal Base Image 7 Server - Extras (RPMs)
ubi-7-server-optional-rpms/x86_64 Red Hat Universal Base Image 7 Server - Optional (RPMs)
ubi-server-rhscl-7-rpms/x86_64    Red Hat Software Collections RPMs for Red Hat Universal Base Image 7 Server  

添加 CentOS-Base.repo

将CentOS-Base.repo添加到/etc/yum.repos.d。

# CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

以下是中文翻译:

每个mirrorlist都静态地设置了URL的查询字符串部分。

在CentOS7中,默认情况下是使用$releasever或$basearch进行指定的。

如果使用UBI7的默认镜像并指定上述变量,即使在环境变量或/etc/yum.conf中进行设置,也无法正常工作。
(由于无法查找到yum如何处理上述变量,如果有了解的人,请告知…)

如果是CentOS7,将$releasever部分指定为7,
由于预期的使用环境是x86-64架构,将$basearch部分指定为x86-64。

从这里来看,似乎只有x86-64存在,而且固定下也没有特别的问题吗?

因为 infra 不必要,所以不需要。

在添加额外内容之后

在附加了CentOS-Base.repo之后,运行yum repolist命令可以看到它已经被添加了。

yum repolist
repo id                                 repo name
base                                    CentOS-7Server - Base
extras                                  CentOS-7Server - Extras
ubi-7/x86_64                            Red Hat Universal Base Image 7 Server (RPMs)
ubi-7-rhah/x86_64                       Red Hat Universal Base Image Atomic Host (RPMs)
ubi-7-server-extras-rpms/x86_64         Red Hat Universal Base Image 7 Server - Extras (RPMs)
ubi-7-server-optional-rpms/x86_64       Red Hat Universal Base Image 7 Server - Optional (RPMs)
ubi-server-rhscl-7-rpms/x86_64          Red Hat Software Collections RPMs for Red Hat Universal Base Image 7 Server
updates                                 CentOS-7Server - Updates 

通过使用yum install,你可以安装deltarpm、epel-release和initscripts。

广告
将在 10 秒后关闭
bannerAds