一、什么是yum
1️⃣:yum是yellowdog update manager的简称,它能够实现rpm管理的所有操作,并能够自动解决各rpm包之间的依赖关系。
2️⃣:yum是rpm的前端工具,是基于rpm来实现软件的管理的一个工具
3️⃣:不能用yum去管理windows的exe程序包,也不能用yum去管理ubuntu的deb程序包,只能用yum来管理redhat系列的rpm包
二、yum的优劣
1️⃣:yum最大的优势就是能够解决rpm的依赖问题,yum能够自动解决软件安装时的依赖关系
2️⃣:yum的缺陷就是如果在未完成安装的情况下强行中止安装过程,下次再安装时将无法解决依赖关系
3️⃣:dnf是redhat7上用来代替yum的一个工具,其存在的意义就是处理yum的缺陷,但其用法与yum是完全一样的
三、yum的原理
1、yum服务器端工作原理
1️⃣:所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布
2️⃣:yum服务器只要提供简单的下载就可以了,ftp或者http的形式都可以
3️⃣:yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号、conf文件、binary信息,以及很关键的依赖信息
4️⃣:在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张“清单”,这张“清单”就是描述每个rpm包的spec文件中信息
2、clinet端工作原理
1️⃣:client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件
2️⃣:yum会定期去更新yum服务器上的rpm包清单,然后把清单下载保存到yum客户端自己的cache里面
3️⃣:根据/etc/yum.conf里配置(默认是/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找清单,
4️⃣:根据清单里的rpm包描述从而来确定安装包的名字、版本号、所需要的依赖包等,然后再去yum服务器下载rpm安装(前提是不存在rpm包的cache)
四、yum的配置文件
1、yum的配置文件有:
- /etc/yum.conf //为所有仓库提供公共配置
- /etc/yum.repos.d/*.repo //为仓库的指向提供配置(软件仓库的配置文件,必须以.repo结尾)
2、yum的repo配置文件中可用的变量:
- $releaseversion //当前OS的发行版的主版本号
- $arch //平台类型
- $basearch //基础平台
3、yum的配置文件示例:
//首先在/etc/yum.repo.d/下面创建一个repo文件 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# touch dvd.repo //文件名必须以.repo结尾 [root@localhost yum.repos.d]# ls dvd.repo redhat.repo(redhat.repo是自带的,可以不用管,里面啥也没有) [root@localhost yum.repos.d]# vim dvd.repo [BaseOS] //仓库的名称(可以随意写) name=baseos //描述信息(可以随意写) baseurl=file:///mnt/BaseOS //仓库的绝对路径(我这是用的本地源) gpgcheck=0 //检测软件仓库来源的合法性,0为不检查,1为检测;如果为1,则需要指明gpgkey= enabled=1 //是否启用此仓库,1为启用,0为不启用 [AppStream] name=appstream baseurl=file:///mnt/AppStream gpgcheck=0 enabled=1 //RHEL8版本的Packages被分在了BaseOS和AppStream中,所以需要配置两个仓库

[repo_name] //仓库的名称 name= //仓库的描述信息 baseurl= //仓库的具体路径,接受以下三种类型 ftp:// #ftp上的仓库源 http:// #网络上的仓库源 file:/// #本地的绝对路径 enabled=1或者0 1为启用此仓库;0为禁用此仓库 gpgcheck=1或者0 1为检查软件包来源合法性;0为不检查来源 如果gpgcheck设为1,则必须用gpgkey定义密钥文件的具体路径: gpgkey=/PATH/TO/KEY
4、yum的其他参数说明
cachedir=/var/cache/yum/$basearch/$releasever //缓存目录 keepcache=0 //缓存软件包, 1启动 0 关闭 debuglevel=2 //调试级别 logfile=/var/log/yum.log //日志记录位置 exactarch=1 //检查平台是否兼容 obsoletes=1 //检查包是否废弃 gpgcheck=1 //检查来源是否合法,需要有制作者的公钥信息 plugins=1 //是否启用插件 tolerant={1|0} //容错功能,1为开启,0为关闭,当设为0时,如果用yum安装多个软件包且其中某个软件包已经安装过就会报错;当设为1时,当要安装的软件已经安装时自动忽略 installonly_limit=5 bugtracker_url # metadata_expire=90m //每小时手动检查元数据 # in /etc/yum.repos.d //包含repos.d目录