ARTICLE · 988828
【RHCA+】yum源配置(软件仓库)

文 | 无足鸟 (转载请注明出处)
关注公众号:无足鸟ICT
微信号:wuzuniao_com
“目录:RHCA+ -> 6 软件仓库 -> 35 yum源配置(软件仓库)”
yum源配置(软件仓库)
yum,英文全称Yellow dog Updater, Modified,专门为自动解决包的依赖关系而存在的软件包管理器
C/S架构
yum在服务器端存放所有RPM包,并将各个包之间的依赖关系记录在文件中;当管理员使用yum安装RPM包时,yum会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的RPM包并进行安装
yum源:存放RPM软件安装包的文件夹;本质:源代码和安装规则的集合;目的:降低安装难度;访问方式:http、ftp、file
yum与dnf(yum v4)软件仓库的配置文件是通用的;建议在RHEL 8中使用dnf作为软件的安装命令,它效率更高,支持多线程同时安装,解决了yum分析不准确、内存占用高等问题
使用时将yum替换成dnf即可;例:dnf install 软件包名称
yum源配置文件在/etc/yum.repos.d/目录下,文件扩展名:*.repo;只有此扩展名才能作为yum源,所以想让其失效可以添加个额外的扩展名
若需要自己创建yum源;可在存放软件包服务器上安装createrepo软件,执行# createrepo 软件包目录 进行创建

动作 | 作用 |
clean | all:清除所有仓库缓存 packages:清理RPM包 headers:head信息 metadata:元数据文件 dbcache:库缓存 |
makecache | 生成仓库缓存 |
零、安装工具
[root@wuzuniao ~]# rpm -q yum #查询yum是否安装
yum-3.4.3-118.el7.noarch
[root@wuzuniao ~]#
一、网络yum源
需要所配置的服务器通过网络能访问到配置的源
[root@wuzuniao ~]# cd /etc/yum.repos.d/
[root@wuzuniao yum.repos.d]# ll #默认有CentOS-Base.repo文件,要提前做好备份;这里只做演示,因为自己的实验系统是红帽的
total 12
-r--r--r--. 1 root root 108 May 7 2014 packagekit-media.repo
-r--r--r--. 1 root root 108 May 7 2014 packagekit-media.repo.bak
-rw-r--r--. 1 root root 74 Oct 3 2022 wuzuniao.repo
[root@wuzuniao yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo #下载阿里镜像源参考;使用此源需联网
--2023-04-06 22:22:29-- https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 119.0.95.244, 36.103.213.210, 125.72.141.227, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|119.0.95.244|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2495 (2.4K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’
100%[========================================>] 2,495 --.-K/s in 0s
2023-04-06 22:22:29 (569 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [2495/2495]
[root@wuzuniao yum.repos.d]# vim CentOS-Base.repo #查看源的配置
[base] #名称唯一,一定要放在[]中
name=CentOS-8.5.2111 - Base - mirrors.aliyun.com #说明,可以随便写
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
http://mirrors.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ #yum源服务器的地址
gpgcheck=0 #1表示RPM数字证书生效,需要验证;0表示RPM数字证书不生效,不验证
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official #数字证书的公钥文件保存位置
#additional packages that may be useful
[root@wuzuniao yum.repos.d]#

二、RHEL7版本创建本地yum源
无法联网时用本地光盘作为yum源;软件包通常在Packages目录中
[root@wuzuniao ~]# cd /etc/yum.repos.d/ #进入/etc/yum.repos.d/目录中(因为该目录存放着软件仓库的配置文件)
[root@wuzuniao yum.repos.d]# mv packagekit-media.repo packagekit-media.repo.bak#移除并备份原repo文件(此命令仅演示如何备份)
[root@wuzuniao yum.repos.d]# vim wuzuniao.repo #创建新的repo文件(文件名称可随意,但后缀必须为.repo)
[wuzuniao] #仓库名称:唯一标识,不和其他软件仓库名冲突;
name=wuzuniao #描述信息(name):注明软件仓库用途
baseurl=file:///media/cdrom #仓库位置(baseurl、mirrorlist):软件包的获取方式;可使用FTP、HTTP或本地文件(需要在后面添加file参数)
enabled=1 #是否启用(enabled):设置此源是否可用;1为可用,0为禁用。不写表示启用
gpgcheck=0 #是否校验(gpgcheck):设置此源是否校验文件;1为校验,0为不校验。
#公钥位置(gpgkey):若上面的参数开启了校验功能,则此处为公钥文件位置。若没有开启,则省略不写。
[root@wuzuniao yum.repos.d]# mkdir -p /media/cdrom#创建挂载点
[root@wuzuniao yum.repos.d]# mount /dev/cdrom /media/cdrom#这种方式iso文件通过光驱挂载给服务器(临时挂载)
mount: /dev/sr0 is write-protected, mounting read-only
[root@wuzuniao yum.repos.d]# mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom#这种挂载方法文件在Linux服务器上,当前演示未使用(临时挂载)
[root@wuzuniao yum.repos.d]# vim /etc/fstab#设置成开机自动挂载(永久挂载)
/dev/cdrom /media/cdrom iso9660 defaults 0 0
[root@wuzuniao yum.repos.d]# mount -a #配置成永久后,立即挂载
[root@wuzuniao yum.repos.d]# yum clean all #等同于 yum cleanheaders、yum cleanpackages
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: wuzuniao
Cleaning up everything
[root@wuzuniao yum.repos.d]# yum makecache#将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
wuzuniao | 4.1 kB 00:00:00
(1/5): wuzuniao/group_gz | 134 kB 00:00:00
(2/5): wuzuniao/filelists_db | 3.0 MB 00:00:00
(3/5): wuzuniao/primary_db | 3.4 MB 00:00:00
(4/5): wuzuniao/other_db | 1.3 MB 00:00:00
(5/5): wuzuniao/productid | 1.6 kB 00:00:00
Metadata Cache Created
[root@wuzuniao yum.repos.d]#
三、RHEL8版本配置本地源
[root@wuzuniao-1 ~]# mkdir -p /media/cdrom #创建挂载目录
[root@wuzuniao-1 ~]# vim /etc/fstab #修改挂载配置文件,让重启后也生效
/dev/cdrom /media/cdrom iso9660 defaults 0 0
[root@wuzuniao-1 ~]# mount -a #重新挂载,立即生效配置
[root@wuzuniao-1 ~]# cd /etc/yum.repos.d/ #进入仓库源配置文件所在目录
[root@wuzuniao-1 yum.repos.d]# vim wuzuniao.repo #创建仓库配置文件(文件名称可随意,但后缀必须为.repo)
8版本要同时添加[BaseOS]、[AppStream],缺一不可
[BaseOS] #仓库名称:唯一标识,不和其他软件仓库名冲突;
name=BaseOS #描述信息(name):注明软件仓库用途
baseurl=file:///media/cdrom/BaseOS #仓库位置(baseurl):软件包的获取方式;可使用FTP、HTTP或本地文件(需要在后面添加file参数)
enabled=1 #是否启用(enabled):设置此源是否可用;1为可用,0为禁用。不写表示启用
gpgcheck=0 #是否校验(gpgcheck):设置此源是否校验文件;1为校验,0为不校验。
#公钥位置(gpgkey):若上面的参数开启了校验功能,则此处为公钥文件位置。若没有开启,则省略不写。
[AppStream] #仓库名称:唯一标识,不和其他软件仓库名冲突;
name=AppStream #描述信息(name):注明软件仓库用途
baseurl=file:///media/cdrom/AppStream #仓库位置(baseurl):软件包的获取方式;可使用FTP、HTTP或本地文件(需要在后面添加file参数)
enabled=1 #是否启用(enabled):设置此源是否可用;1为可用,0为禁用。不写表示启用
gpgcheck=0 #是否校验(gpgcheck):设置此源是否校验文件;1为校验,0为不校验。
#公钥位置(gpgkey):若上面的参数开启了校验功能,则此处为公钥文件位置。若没有开启,则省略不写。
[EPEL] #仓库名称:唯一标识,不和其他软件仓库名冲突;添加红帽的扩展包,可选
name=EPEL #描述信息(name):注明软件仓库用途
baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64#仓库位置(baseurl):软件包的获取方式;可使用FTP、HTTP或本地文件(需要在后面添加file参数)
enabled=1#是否启用(enabled):设置此源是否可用;1为可用,0为禁用。不写表示启用
gpgcheck=0 #是否校验(gpgcheck):设置此源是否校验文件;1为校验,0为不校验。
#公钥位置(gpgkey):若上面的参数开启了校验功能,则此处为公钥文件位置。若没有开启,则省略不写。
[root@wuzuniao-1 yum.repos.d]# 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.
0 文件已删除
[root@wuzuniao-1 yum.repos.d]# yum makecache #建立缓存
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.
AppStream 539 MB/s | 5.3 MB 00:00
BaseOS 365 MB/s | 2.2 MB 00:00
元数据缓存已建立。
[root@wuzuniao-1 yum.repos.d]#
四、EPEL
1、安装EPEL源(RHEL8)
[root@Server_8_200 ~]# cd /etc/yum.repos.d/ #进入yum源目录
[root@Server_8_200 yum.repos.d]# mv wuzuniao.repo wuzuniao.repo.back#备份原先yum源
[root@Server_8_200 yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm #下载安装阿里云的epel配置包
[root@Server_8_200 yum.repos.d]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*#替换repo配置中地址为阿里云地址
[root@Server_8_200 yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel* #替换repo配置中地址为阿里云地址
[root@Server_8_200 yum.repos.d]# yum clean all #清理缓存
[root@Server_8_200 yum.repos.d]# yum makecache #建立缓存
2、安装EPEL源(RHEL7)
[root@Client_7_100 ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo #安装epel
3、CentOS直接yum安EPEL源
[root@wuzuniao ~]# yum -y install epel-release #下载安装epel源
[root@wuzuniao ~]# dnf -y install epel-release #下载安装epel源
— END —