CentOS系统的YUM在线升级机制

一、简介

与rpm相比,yum的最大特点或者说优势就是,yum解决了软件包安装时的依赖问题,这对使用者来说将会省去相当一部分麻烦。
yum相当于是rpm的升级版本,其安装软件包的工作机制依然是基于rpm机制的,只不过比rpm更复杂点,其原理就是:
系统服务商先将释出的软件放到YUM服务器上,然后对这些软件的属性依赖进行分析,然后将这些分析信息记录下来,并制作成软件相关性的列表,存放这些信息及软件的主机或网络位置就被称为软件仓库或容器(repository);当客户端有安装软件的请求时,客户端会主动向yum服务器下载软件清单列表,然后会将下载好的清单列表与本地的rpm数据库数据进行对比,再进行安装,避免了相同文件的重复安装,以及依赖处理。

以上流程如下图所示:
CentOS系统的YUM在线升级机制_第1张图片
图片来源:http://linux.vbird.org/linux_basic/0520softwaremanager/yum-01.gif

使用yum进行在线升级安装的前提是必须要有合适的yum源,否则是无法使用yum进行在线安装升级的!

二、利用yum进行软件的查询、安装、升级与卸载

1. 利用yum实现软件的查询

yum同样提供了对软件各种信息的查询功能,其查询命令的格式为:

yum [option] 软件名

常用的一些参数为:

potion 介绍
search 搜索要查询软件的信息
list 列出yum管理的所有的软件名与本版信息,类似于 rpm -qa
info yum list 的功能相似,但查询的信息更加详细,查询结果与 rpm -qai 相似
provides/whatprovides 查询提供该文件的软件有哪些,类似与 rpm -qf
deplist 查询软件的依赖信息
check-updates 查询有哪些软件可以进行更新升级

如图所示:
CentOS系统的YUM在线升级机制_第2张图片

2. 利用yum实现软件的安装与升级

利用yum进行软件的安装与升级,主要用到的就是两个命令,一个是:yum install 软件名,另一个是:yum update 软件名。
以下为常用参数说明:

option 介绍
-y 在安装时可以不用再手动输入进行确认安装
–installroot=/some/path 自定义安装目录
install 后接想要安装的软件名即可安装!若不加其他参数,则为默认安装
update 后接要升级的软件名即可
reinstall 对软件进行重新安装,后面直接更软件名即可

3. 利用yum实现软件的卸载(移除)

通过yum对软件进行卸载或者移除,操作非常简单,操作起来虽然简单,但其实现依然是基于rpm的,所以仍然很有必要再好好了解了解rpm的工作原理。命令操作如下所示:

option 介绍
remove/erase 后接软件名,实现对该软件的卸载或移除

三、利用yum实现软件群组的安装

yum实现软件群组的安装是通过将相关软件打包成组,利用yum指令机制将这些软件统一安装,免去了一个软件一个软件进行安装的麻烦。
常用的操作如下:

option 介绍
grouplist 列出所有可以使用的软件群组
groupinfo 后接软件群组名,可以查询群组内包含的软件
groupinstall 后接软件群组名称,会安装该软件群组
groupremove 后接软件群组名,将该软件群组移除或卸载

正常情况下使用yum安装群组软件,系统是会默认安装好各项软件的。但是若软件群组里面的软件有是『可选择的』!而不是『主要的(mandatory)』, 在默认情况下,那些可选择安装的软件系统是不会安装的!!
此时,可以通过修改 /etc/yum.conf 来进行设置,设置内容如下图所示:
CentOS系统的YUM在线升级机制_第3张图片
若不想修改配置文件,也可以使用 “yum install 软件名 …… ”的方式一个一个写进去安装!

四、yum的配置文件

yum使用的前提是必须要连接到互联网,并且有合适的yum源。这里说的合适并不是说没有,而是有,但是yum源离该客户端距离过远,影响使用体验。
在yum仓库中最为重要的是『repodata』目录,该目录存放着分析后的软件属性相依关系的文件:
CentOS系统的YUM在线升级机制_第4张图片

在客户端上,CentOS7的yum配置文件主要有:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置

1. 配置文件主要项目介绍

项目名称 用途说明
[base] 代表软件仓库的名字!中括号一定要有,里面的名称则可以随意取。但是一个配置文件里不能有两个相同的软件库名称, 否则会产生冲突而不知道该从哪个软件仓库里找相关软件信息列表!
name 只是说明一下这个软体仓库的意义,可有可无!
mirrorlist 列出这个软件仓库可以使用的仓库源,可有可无!
baseurl 这个最重要,因为后面接的就是软件仓库的实际网址!mirrorlist是由yum 程序自行连接仓库源,baseurl 则是指定固定的一个软件仓库网址
enable=1 就是让这个软件仓库被启动。如果不想启动可以使用enable=0
gpgcheck=1 指定是否需要查阅RPM档案内的数字签名
gpgkey 设置数字签名文件的位置!使用预设值即可

如图所示:
CentOS系统的YUM在线升级机制_第5张图片

2. 启用新设置的仓库源

在实际使用中,应该在/etc/yum.repos.d/ 底下新建一个repo文件,而不是在原有文件上进行直接的修改, 同时该文件名必须要以“.repo” 才行!新的repo文件设置好后,需要将本地原有的仓库源缓存清除掉,否则新设置的仓库源则将不会被识别, 产生的原因是 yum 会先下载软件仓库的清单到本机的/var/cache/yum 里面去!若我们修改了网址却没有修改软件仓库名称(中括号内的文字), 可能就会造成本机的清单与yum 服务器的清单不同步,此时就会出现无法更新的问题了!此时通过yum 的clean 操作来处理即可!

五、EPEL/ELRepo 外挂软体设置

通过yum仓库进行软件安装虽然是很方便,但是有一点不好的地方就是其软件储备还是有限的,若我们要安装一些第三方软件,这些yum库里并不一定会有,此时若通过源码安装又不方便。

1. EPEL/ELRepo设置

为了解决这个问题在Fedora 基金会里面发展了一个外加软件计划(Extra Packages for Enterprise Linux, EPEL),这个计划主要是针对Red Hat Enterprise Linux 的版本来开发的, 刚刚好CentOS 也是针对RHEL 的版本来处理的!所以也就能够支持该软件库的相关软件相依环境。
其设置与yum源的设置基本相同,这里就不再赘述!如下图所示:
CentOS系统的YUM在线升级机制_第6张图片
使用格式为:yum –enablerepo=epel名 install 软件名,“–enablerepo=epel名” 是一定要加上的,否则是没有效果的!

2. 使用本机光盘镜像源

在没有网络的情况下,我们还可以将光盘设置成仓库源,设置方法也是与yum源的设置方法是一样的,如下图所示:
CentOS系统的YUM在线升级机制_第7张图片

你可能感兴趣的:(知识点整理)