一、常见yum源
下面我们看看如果创建一个yum源。yum源可根据服务器的类型分为:
http://
ftp://
nfs://
file:///PATH/TO/Local_File
而著名的yum源的站点有:
- 163:http://mirrors.163.com/centos/$releasever/os/$basearch/
- centos:http://mirror.centos.org/centos/7/os/x86_64/
- 阿里源:https://mirrors.aliyun.com/centos/7/os/x86_64/
二、yum源的repo文件
与yum命令相关的配置文件通常有/etc/yum.conf 和/etc/yum.repos.d/目录下的repo文件。/etc/yum.conf是记录了关于yum命令的一些预设设置及相关目录路径,而通常我们在自自定义yum源的时候,编辑使用的是/etc/yum.repos.d/目录下的repo文件。
repo文件的格式:
[id]
name=Some name for this server
baseurl=url://server1/path/to/repository/
[url://server2/path/to/repository/]
[url://server3/path/to/repository/]
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
gpgcheck=[1|0]
failovermethod=[priority|roundrobin]
enabled=[1|0]
gpgkey=url://server/path/to/key/
[base]:代表这个yum库的ID,唯一存在;
name:表示这个yum库的名字;
baseurl:表示一个yum库的URL来源地址,可添加多个路径,只能有一个baseurl;其支持多种路径格式,包括http://、ftp://、nfs://、file:///等;
mirrorlist:指定一个镜像服务器的地址列表;
gpgcheck:表示是否进行gpg检查,1为检查,0为不检查;
failovermethod:在有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。
gpgkey:用于进行gpg检查的key的来源路径;
enable:是否启用该yum源,0表示禁用,1为启用;
另外在repo文件包含些常见的变量,分别为:
$releasever:当前OS的发行版的主版本号;
$arch:代表CPU架构;
$basearch:代表系统架构;
$YUM0-$YUM9:自定义变量
在repo文件中可用使用上述变量来替换掉对应的版本或平台名。
三、实例:创建一个网络yum源
1、首先在/etc/yum.repos.d/目录下创建net_yum163.repo文件,并完成相应功能的编辑:
[root@localhost ~]# vim /etc/yum.repos.d/net_yum163.repo
[base]
name=net_yum163
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
enable=1
:wq
2、随后使用命令yum clean all 清理下yum的缓存,随后使用makecache创建缓存:
root@localhost ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@localhost ~]# yum makecache
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00:00
(1/4): base/group_gz | 156 kB 00:00:00
(2/4): base/filelists_db | 6.7 MB 00:00:00
(3/4): base/other_db | 2.5 MB 00:00:00
(4/4): base/primary_db | 5.7 MB 00:00:00
Determining fastest mirrors
元数据缓存已建立
此时使用yum repolisti已经可以正常查看源的状态:
[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
base net_yum163 9,591
repolist: 9,591
3、测试使用新的yum源更新python:
[root@localhost ~]# yum update python -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 python.x86_64.0.2.7.5-34.el7 将被 升级
---> 软件包 python.x86_64.0.2.7.5-58.el7 将被 更新
--> 正在处理依赖关系 python-libs(x86-64) = 2.7.5-58.el7,它被软件包 python-2.7.5-58.el7.x86_64 需要
--> 正在检查事务
---> 软件包 python-libs.x86_64.0.2.7.5-34.el7 将被 升级
---> 软件包 python-libs.x86_64.0.2.7.5-58.el7 将被 更新
--> 解决依赖关系完成
依赖关系解决
=================================================================================================================================
Package 架构 版本 源 大小
=================================================================================================================================
正在更新:
python x86_64 2.7.5-58.el7 base 91 k
为依赖而更新:
python-libs x86_64 2.7.5-58.el7 base 5.6 M
事务概要
=================================================================================================================================
升级 1 软件包 (+1 依赖软件包)
总下载量:5.7 M
Downloading packages:
No Presto metadata available for base
(1/2): python-2.7.5-58.el7.x86_64.rpm | 91 kB 00:00:00
(2/2): python-libs-2.7.5-58.el7.x86_64.rpm | 5.6 MB 00:00:00
---------------------------------------------------------------------------------------------------------------------------------
总计 8.6 MB/s | 5.7 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : python-libs-2.7.5-58.el7.x86_64 1/4
正在更新 : python-2.7.5-58.el7.x86_64 2/4
清理 : python-2.7.5-34.el7.x86_64 3/4
清理 : python-libs-2.7.5-34.el7.x86_64 4/4
验证中 : python-libs-2.7.5-58.el7.x86_64 1/4
验证中 : python-2.7.5-58.el7.x86_64 2/4
验证中 : python-libs-2.7.5-34.el7.x86_64 3/4
验证中 : python-2.7.5-34.el7.x86_64 4/4
更新完毕:
python.x86_64 0:2.7.5-58.el7
作为依赖被升级:
python-libs.x86_64 0:2.7.5-58.el7
完毕!
成功了!
四、实例:创建本地yum源
本例使用光盘镜像作为本地yum源,首先挂载光盘到/mnt目录:
[root@localhost yum.repos.d]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
随后在/etc/yum.repos.d/目录下创建dvd.repo文件:
[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd repo
baseurl=file:///mnt
enable=1
gpgcheck=0
创建完repo文件后,使用yum clean 和yum makecache 命令:
[root@localhost ~]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: dvd
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@localhost ~]# yum makecache
已加载插件:fastestmirror, langpacks
dvd | 3.6 kB 00:00:00
(1/4): dvd/group_gz | 155 kB 00:00:00
(2/4): dvd/primary_db | 5.3 MB 00:00:00
(3/4): dvd/other_db | 2.3 MB 00:00:00
(4/4): dvd/filelists_db | 6.2 MB 00:00:00
Determining fastest mirrors
元数据缓存已建立
此时DVD 本地yum源就可以使用了。