YUM仓库的概述

  • RPM包构建的软件更新机制
  • 自动解决依赖关系
  • 软件包由集中的YUM软件仓库提供

要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件及其依懒软件的软件仓库,提供软件仓库的服务器也称为“源”服务器。

一、准备网络安装源(服务器端)

YUM软件仓库通常借助于HTTP协议或FTP协议来进行发布, 这样可以面向网络中的所有客户机提供软件源服务。为了便于客户机查询软件包,获取依懒关系等信息,在软件仓库中需要提供仓库数据(repodate文件),其中收集了目录下所有的rpm头部信息。

RPM软件包的来源

1.CentOS发布的RPM包集合;
2.第三方组织发布的RPM包集合;
3.用户自定义的RPM包集合。

1.准备软件仓库目录

在centos 7 系统的安装光盘中,已针对软件目录Packages建立好了repodate数据。因此只需将整个光盘中的内容通过HTTP和FTP的方式进行发布,就可以作为软件仓库。

[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm    //通过rpm的方式安装FTP服务
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/
//创建一个目录(自定义即可,必须在可以匿名访问FTP服务的目录中)
//然后将光盘下的所有东西都复制到该目录下

对于用户搜集的非Centos 7 光盘中的软件包。除了需要准备的相应的目录之外还需要手工的创建repodate文件,这就需要用到createrepo工具。

[root@localhost ~]# mkdir /var/ftp/other
[root@localhost ~]# cd /var/ftp/other/
//进入到存放rpm包的目录中
[root@localhost other]# yum -y install createrepo  安装一个createrepo
[root@localhost other]#createrepo -g /mnt/repodata/repomd.xml ./
//使用createrepo工具按照/mnt/repodata/repomd.xml的模板中的源弄到当前目录下

启动FTP服务,并保证匿名用户能正常访问
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
//启动FTP服务并设置为开机自启动
[root@localhost ~]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (127.0.0.1:root):                   //直接回车
530 Permission denied.
Login failed.
ftp>//测试FTP服务可以匿名访问

二、配置软件仓库位置(客户端)

yum工具使用的软件仓库信息存放在/etc/yum.repos.d目录下扩展名必须是“.repo”结尾,我们可以把里面的源备份到一个文件里面去,然后创建一个新的文件local.repo

[root@web ~]# cd /etc/yum.repos.d/
[root@web yum.repos.d]# mv C* backup
[root@web yum.repos.d]# cp backup/CentOS-Base.repo local.repo  拷贝一份模板到新的文件中

[root@web yum.repos.d]# ls

backup local.repo

[root@web yum.repos.d]#vim local.repo //创建新的YUM仓库

通过FTP发布的光盘镜像中的rpm包

[ftp]                                                                    //仓库ID
name=ftp                                                         //仓库名称,自定义,可忽略
baseurl=ftp://192.168.1.1/centos7                  //URL访问路径(FTP服务须指定到repodate数据文件的上级目录)
enabled=1                                                      //是否启用软件仓库(1启用,0不启用)默认值为1,这项可忽略
gpgcheck=1                                                   //是否验证软件包的签名(1启用,0不启用)
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7                       //指定公钥文件存放位置
#创建安装通过FTP发布非光盘镜像的rpm包
[ftp1]
name=ftp1
baseurl=ftp://192.168.1.1/other
enabled=1
gpgcheck=0                                                            //没什么特殊要求,这项一般是0,不启用软件的签名认证
#通过HTTP发布的光盘镜像中的rpm包
[http]
name=http
baseurl=http://192.168.1.1                                    //HTTP服务,只需指定HTTP服务的IP地址即可
enabled=1
gpgcheck=0
#如果光盘挂载本地
[local]
name=local
baseurl=file:///mnt                                                  //本地指定光盘镜像挂载位置
enabled=1
gpgcheck=0
使用yum工具管理软件包

yum 工具的一些常用指定

[root@localhost ~]# yum list//可以获得系统中的软件安装情况,也可以查询软件仓库中可用的软件包列表。
[root@localhost ~]# yum list installed//只列出系统中已安装的软件包
[root@localhost ~]# yum list available//只列出软件仓库中可用(但是尚未安装)的软件包
[root@localhost ~]# yum list updates//列出可以升级版本的软件包
yum info——查询软件包的描述信息
[root@localhost ~]# yum info vsftpd//加软件包查看详细的描述信息
yum search——查询指定的软件包
[root@localhost ~]# yum search vsftpd//查询与vsftpd相关的软件包wershell

二、安装、升级、卸载软件包

使用yum命令进行操作时,自动检查并解决软件包之间的依懒关系,期间会提示用户按“y”确认。若希望自动确认,可以在yum命令后添加“-y”选项。

[root@localhost ~]# yum -y install vsftpd    //安装vsftpd服务
[root@localhost ~]# yum -y update vsftpd//更新vsftpd服务
[root@localhost ~]# yum -y remove vsftpd//卸载vsftpd服务

如果YUM配置文件编写错误,修改配置文件之后,建议使用

[root@localhost ~]# yum clean all//清空YUM缓存信息