<>软件安装与升级——yum

yum是通过分析RPM的标头资料后,根据各软件的相关性制作出属性相依时的解决方案,自动处理软件的关联问题,实现软件安装、升级、移除。

为了方便用户软件安装、升级,distribution 会先释出软件,然后将软件放置在一个服务器上,这个服务器可以被称为yum源。目前有许多的yum源
,用户在使用yum时,可以找到合适的yum源,里面有许多不同的软件。

<>查询

如果需要查看原版distribution所提供的软件,或想知道某软件的功能,可以使用yum来查询。
yum [option] [参数] [参数值]
选项与参数
[option]主要的选项有以下几个:

* -y:当yum要等待用户输入时,这个选项可以自动提供yes的响应
* -h:显示帮助信息
* -c:指定配置文件
* -q:安静模式
* -v:详细模式
* -d:设置调试等级(0-10)
* -e:设置错误等级(0-10)
* -R:设置yum处理一个命令的最大等待时间
* -C:完全从缓存中运行,而不去下载或者更新任何头文件
* --installroot=/some/path:将该软件安装在/some/path而不使用默认路径
[参数]的选项有以下几个:

* search:搜寻某个软件名称或是描述(discription)的重要关键字
* list:列出目前yum所管理的所有的软件名称与版本,有点类似rpm -qa
* info:同上,不过有点类似rpm -qai的运行结果
* provides:通过文件搜寻软件,类似rpm -qf的功能
<>安装与升级
yum [option] [参数] [参数值]
[option]可以参考上面查询的选项。
[参数]则有install/update,install用于安装软件,update用户升级软件,后面都是接对应的软件名。

<>移除软件
yum [option] remove 软件名称
[option]可以参考上面查询的选项。
移除软件的时候,直接在remove后面接软件名称即可。

<>yum源配置文件

yum的yum源配置文件一般位于/etc/yum.repos.d目录下,如文件/etc/yum.repos.d/CentOS-Base.repo就是
CentOS系统下yum源的配置文件。
# 查看配置文件内容 [root@instance-d619ad0f ~]# vim /etc/yum.repos.d/CentOS-Base.repo [
base] name=CentOS-$releasever - Base #
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirrors.baidubce.com/centos/$releasever/os/$basearch/ enabled=1
gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
如上所示,配置文件中有设置一个名为base的软件库,配置的参数说明如下:

* [base]:软件库的名称,中括号必须存在,里面的名称可以随便取,但不能有两个相同名称的软件库
* name:说明该软件库的意义,只是起到说明作用。
* mirrorlist:设置这个软件库的映射站台,设置了这个映射站台,yum程序会通过该站台寻找yum源,不想用可以注释掉
* baseurl:用户设定实际的yum源,mirrorlist是由yum自动寻找yum源,baseurl是指定一个yum源。
* enabled:设置是否开启使用该软件库,1为启用,0为禁用
* gpgcheck:指定是否需要查阅RPM文件内的数字签名
* gpgkey:数字签名公钥文件的位置
我们可以通过以下指令来查看当前系统中所有软件库。
[root@instance-d619ad0f ~]# yum repolist all Loaded plugins: langpacks,
versionlock repoid repo name status C7.0.1406-base/x86_64 CentOS-7.0.1406 -
Base disabled C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 - CentOSPlus disabled
省略... C7.4.1708-updates/x86_64 CentOS-7.4.1708 - Updates disabled baidu-bcm
Baidu Cloud Monitor(BCM) enabled: 66 base/7/x86_64 CentOS-7 - Base enabled:
9,911 base-debuginfo/x86_64 CentOS-7 - Debuginfo disabled 省略... extras/7/x86_64
CentOS-7 - Extras enabled: 432 extras-source/7 CentOS-7 - Extras Sources
disabled fasttrack/7/x86_64 CentOS-7 - fasttrack disabled updates/7/x86_64
CentOS-7 - Updates enabled: 1,614 updates-source/7 CentOS-7 - Updates Sources
disabled
<>修改软件库时产生的问题与解决方法

yum源配置文件都是在/etc/yum.repos.d目录下,且该目录下文件扩展名为.repo的才会被系统认为是yum源配置文件。此外,yum
会生成软件库清单并保存到/var/cache/yum中,而yum
生成清单时是把软件库名称(即中括号中的文字,如:base)当做一个软件库的唯一标识。所以,当我们更改了软件库的yum源
却没有更改软件库名称,可能会造成本机的软件列表与yum源上的软件列表不同步,这样就会出现无法更新的问题。此时我们可以通过如下指令来清除本机上的软件清单。
yum clean [packages|headers|all]
* packages:删除已下载的软件文件
* headers:将下载的软件文件头删除
* all:将所有软件库数据都删除
针对以上问题,我们可以使用yum clean all来解决。

<>yum 的软件群组功能

当一个项目需要用到许多软件时,我们一个个装未免显得有点麻烦。此时,我们可以使用yum的软件群组功能。
yum [option] [参数] [参数值]
[option]可以参考yum查询中提到的选项。
[参数]有如下选项:

* grouplist:列出所有可能使用的软件群组
* groupinfo:后面接软件群组名称,可以查看软件群组中所有的软件名
* groupinstall:后面接软件群组名称,可以安装软件群组中的所有软件
* groupremove:后面接软件群组名称,可以移除软件群组中所有的软件