如何创建yum源

一、常见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源就可以使用了。

你可能感兴趣的:(如何创建yum源)