软件安装与升级——yum

软件安装与升级——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/updateinstall用于安装软件,update用户升级软件,后面都是接对应的软件名。

移除软件

yum [option] remove 软件名称

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

yum源配置文件

yumyum源配置文件一般位于/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
repo id                                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:后面接软件群组名称,可以移除软件群组中所有的软件

你可能感兴趣的:(Linux)