1. 什么是yum?
    yum是一种基于C/S架构的RPM软件更新机制,所有的软件包由集中的软件仓库提供,在安装软件时能够自动分析并解决软件包之间的依赖关系。
  2. 搭建yum支持的的软件源主要有以下三种:
    1)本地yum:file://…
    2)网络yum,又分为HTTP服务器:http://…和FTP服务器:ftp://…
    3)自定义yum仓库
  3. 在客户端配置yum的仓库配置文件(xx.repo)时,yum仓库配置文件(xx.repo)一般存放在客户端/etc/yum.repos.d/目录下,常见的配置条目如下所示:
[server]:自定义源的名称,具有唯一性
name:该yum软件源的描述字串
baseurl:指定yum服务端的URL地址
enabled:是否启用此yum仓库
gpgcheck:是否验证待安装的RPM包
  1. 下面分别以以上三种方式演示搭建yum的过程。
    ( 1)基于本地目录上的软件源搭建yum(既是客户端也是服务端),下面以软件源镜像文件(rhel-server-7.2-x86_64-dvd.iso)存放于本地/ISO目录为例,演示搭建本地yum的过程。
    a.创建本地挂载点
[root@room4pc09 桌面]#mkdir /mnt/yum

b.将本地软件源镜像文件挂载到上一步创建的挂载点

[root@room4pc09 桌面]#mount /ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/yum

挂载完成后,顺便查看挂载点目录文件,确认是否挂载成功

[root@room4pc09 桌面]#ls /mnt/yum
[root@room4pc09 桌面]#df -h

c.配置xx.repo配置文件

[root@room4pc09 桌面]#vim /etc/yum.repos.d/yum.repo
[dvd]
name=dvd
baseurl=file:///mnt/yum
enabled=1
gpgcheck=0

d.清空yum缓存,查看搭建yum是否成功

[root@room4pc09 桌面]#yum clean all
[root@room4pc09 桌面]#yum repolist

e.以上步骤完成后,本地yum只能算是临时搭建,重启电脑后需要重新手动挂载,通过修改开机自动挂载文件/etc/fstab,则可实现每次开机自动挂载

[root@room4pc09 桌面]#vim /etc/fstab
/ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/yum iso9660 defaults 0 0

(2) 基于HTTP服务器上的软件源搭建网络yum,下面以软件源镜像文件(rhel-server-7.2-x86_64-dvd.iso)存放于HTTP服务器(IP:192.168.4.254)的/ISO目录中为例,演示搭建网络yum的过程
a.HTTP服务端配置

[root@room4pc254 桌面]#mkdir /var/www/html/rhel7 \创建挂载点
[root@room4pc254 桌面]#mount /ISO/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhel7 \挂载软件源镜像文件
[root@room4pc254 桌面]#vim /etc/fstab \修改开机自动挂载文件
/ISO/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhel7/ iso9660 defaults 0 0

(以上这一步实现服务端开机自动挂载软件源镜像文件)

[root@room4pc254 桌面]#df -h
[root@room4pc254 桌面]#ls /var/www/html/rhel7

b.客户端配置xx.repo配置文件

[root@room4pc09 桌面]#vim /etc/yum.repos.d/yum.repo
[yum]
name=yum
baseurl=http://192.168.4.254/rhel7
gpgcheck=0
enabled=1

c.客户端清空yum缓存,查看搭建yum是否成功

[root@room4pc09 桌面]#yum clean all
[root@room4pc09 桌面]#yum repolist
  • 基于FTP服务器上的软件源搭建网络yum与HTTP服务器类似,只需要将服务器网页根目录由/var/www/html/改为/var/ftp即可,此处不再赘述。
    (3)基于本地现有的rpm安装包自定义yum仓库,下面以宿主机(192.168.1.254)本地目录/var/ftp/ansible下已有的rpm安装包(ansible-2.4.2.0-2.el7.noarch.rpm,python2-jmespath-0.9.0-3.el7.noarch.rpm,python-httplib2-0.9.2-1.el7.noarch.rpm,python-paramiko-2.1.1-4.el7.noarch.rpm,python-passlib-1.6.5-2.el7.noarch.rpm,sshpass-1.06-2.el7.x86_64.rpm)为例,演示自定义yum仓库,并创建ftp的网络yum的过程
    a.将rpm安装包拷贝至/var/ftp/ansible目录并自定义yum仓库
[root@room9pc01 桌面]# cp -r ansible_soft/*.rpm /var/ftp/ansible/
[root@room9pc01 桌面]# cd /var/ftp/ansible/
[root@room9pc01 ansible]#createrepo .                 //"."表示当前目录
[root@room9pc01 ansible]#createrepo --update .		//当拷贝进来新的rpm包时需要更新yum仓库 .

注:自定义yum仓库也可以不用cd到rpm安装包所在的目录,如

[root@room9pc01 桌面]#createrepo /var/ftp/ansible/
root@room9pc01 桌面]#createrepo --update /var/ftp/ansible/

b.在虚拟机(192.168.1.30)搭建以上自定义的网络yum源

[root@ansible ~]# vim /etc/yum.repos.d/ansible.repo
[ansible]
name=ansible
baseurl=ftp://192.168.1.254/ansible
enabled=1
gpgcheck=0

c.检查yum源是否搭建成功

[root@ansible ~]#yum repolist