RHEL/CentOS dnf/yum 源问题

dnf/yum 源问题

我写了个脚本,

[root@localhost ~]# cat set_local_repo.sh
#!/bin/bash
cdrom="/dev/sr0"      # 本地镜像源 设备文件,或者镜像文件
cddir="/var/repo"  # 准备挂载的目录
repo="/etc/yum.repos.d/local.repo"  # redhat repo 配置文件
# set fstab
mkdir -p ${cddir}
# 设置开启自动挂载
if [[ -b "$cdrom" ]]; then
    echo -e "${cdrom}\t${cddir}\tiso9660\tdefaults\t0\t0" >> /etc/fstab
elif [[ -f "$cdrom" ]]; then
    echo -e "${cdrom}\t${cddir}\tiso9660\tloop,ro\t0\t0" >> /etc/fstab
else
    echo "$cdrom不是设备文件也不是普通文件"
    exit 1
fi

mount -a
# set repo
echo -e "
[Local-BaseOS]
name=Local-BaseOS
metadata_expire=-1
gpgcheck=1
enabled=1
baseurl=file://${cddir}/BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[Local-AppStream]
name=Local-AppStream
metadata_expire=-1
gpgcheck=1
enabled=1
baseurl=file://${cddir}/AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
" >> ${repo}

conf="/etc/yum/pluginconf.d/subscription-manager.conf"
if [[ -f "$conf" ]]; then
    sed -i 's/enabled=1/enabled=0/' $conf
fi

version=cat /etc/redhat-release | grep release | sed -n 's/.*release \(.*\)\..*/\1/p'
if [$version'' -eq ''];then
    echo '无法获取系统版本'
else
    yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-${version}.noarch.rpm
fi

参考教程:

https://www.programminghunter.com/article/39032455888/
https://zhuanlan.zhihu.com/p/527455586

RHEL/CentOS 设置epel

在RHEL/CentOS系统下yum安装软件时报错,这是由于RHEL/CentOS系统yum源中没有对应的安装包,这时我们只需要安装Epel即可解决。
EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。
我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件。
更多关于EPEL 项目的细节可以到以下网站获取:https://fedoraproject.org/wiki/EPEL

  • 提示 - RHEL/CentOS系统有许多第三方源,比较流行的比如RpmForge,RpmFusion,EPEL,Remi等等。
  • 然而需要引起注意的是,如果系统添加了多个第三方源,可能会因此产生冲突——一个软件包可以从多个源获取,一些源会替换系统的基础软件包,从而可能会产生意想不到的错误。已知的就有Rpmforge与EPEL会产生冲突。
  • 对于这些问题我们建议,调整源的优先权或者有选择性的安装源,但是这需要复杂的操作,如果你不确定如何操作,我们推荐你只安装一个第三方源。

在文本中,我将展示在CentOS下如何安装EPEL源
要想安装EPEL,我们先要下载EPEL的rpm安装包。

http://download.fedoraproject.org/pub/epel

根据你的RHEL/CentOS版本来选择正确的下载地址。
请注意EPEL 的安装包是独立编译的,所以它可以安装在32位和64位系统中。

  1. 确认你的RHEL/CentOS的版本
    可以通过以下命令确认你的CentOS 版本
$ cat /etc/redhat-release 
Red Hat Enterprise Linux release 9.1 (Plow)
  1. 下载EPEL 的rpm 安装包
    现在从上面的地址下载RHEL/CentOS版本所对应的EPEL 的版本
$ wget https://mirrors.sonic.net/epel/epel-release-latest-9.noarch.rpm
  1. 安装EPEL
    通过以下命令安装EPEL 软件包
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
或
$ sudo rpm -ivh epel-release*
  1. 检查EPEL 源
    安装好EPEL 源后,用yum 命令来检查是否添加到源列表
# yum repolist
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

仓库 id                  仓库名称
AppStream                AppStream
BaseOS                   BaseOS
docker-ce-stable         Docker CE Stable - x86_64
epel                     Extra Packages for Enterprise Linux 9 - x86_64

EPEL已经在repo 后列出,并且显示提供了上万个软件包,所以EPEL 已经安装到你的RHEL/CentOS了。
EPEL源的配置安装到了 /etc/yum.repos.d/epel.repo 文件。

posted @ 2023-01-05 13:38  hs3434  阅读(1224)  评论(0编辑  收藏  举报