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安装包。
根据你的RHEL/CentOS版本来选择正确的下载地址。
请注意EPEL 的安装包是独立编译的,所以它可以安装在32位和64位系统中。
- 确认你的RHEL/CentOS的版本
可以通过以下命令确认你的CentOS 版本
$ cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
- 下载EPEL 的rpm 安装包
现在从上面的地址下载RHEL/CentOS版本所对应的EPEL 的版本
$ wget https://mirrors.sonic.net/epel/epel-release-latest-9.noarch.rpm
- 安装EPEL
通过以下命令安装EPEL 软件包
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
或
$ sudo rpm -ivh epel-release*
- 检查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 文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)