yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum 运行原理
yum的工作需要两部分来合作,一部分是yum服务器,还有就是client的yum工具。下面分别介绍两部分工作原理。
-
yum服务器
所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式都可以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张"清单",这张"清单""就是描述每个rpm包的spec文件中信息。
-
yum client端
client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件,这些配置文件指定了yum服务器的地址。yum会定期去"更新"yum服务器上的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找"清单",根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)
yum check-update 检查可更新的所有软件包
yum update 下载更新系统已安装的所有软件包
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum install <packages> 安装新软件包
yum update <packages> 更新指定的软件包
yum remove <packages> 卸载指定的软件包
yum groupinstall <groupnames> 安装指定软件组中的软件包
yum groupupdate <groupnames> 更新指定软件组中的软件包
yum groupremove <groupnames> 卸载指定软件组中的软件包
yum grouplist 查看系统中已经安装的和可用的软件组
yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包
yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
yum list available 列出资源库中所有可以安装的rpm包
yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包
yum list updates 列出资源库中所有可以更新的rpm包
yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包
yum list installed 列出资源库中所有已经安装的rpm包
yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包
yum list extras 列出已经安装的但是不包含在资源库中的rpm包
yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
yum list recent 列出最近被添加到资源库中的软件包
yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
yum clean headers 清除缓存中的rpm头文件
yum clean packages 清除缓存中rpm包文件
yum clean all 清除缓存中的rpm头文件和包文件
yum deplist <packages> 显示软件包的依赖信息
当第一次使用yum 或yum 资源库有更新时,yum 会自动下载所有所需的he ade rs放置于 /var/cache /yum 目录下,所需时间可能较长。
还可以使用 yum info 命令列出包信息,yum info 可用的参数与 yum list 的相同。
yum 命令还可以使用 -y 参数用于用 ye s 回答命令运行时所提出的问题,比如 yum -y install vsftpd,这样在安装软件的时候就不用输入yes/y了
yum 命令工具使用举例
1、升级系统
[root@localhost ~]#yum update
2、安装指定的软件包,我最喜欢用下面的命令
[root@localhost ~]# yum -y install vsftpd
3、升级指定的软件包
[root@localhost ~]# yum -y update mysql
4、卸载指定的软件包
[root@localhost ~]# yum -y remore vsftpd mysql
5、查看系统中已经安装的和可用的软件组,对于可用的软件组,你可以选择安装
[root@localhost ~]# yum grouplist
6、安装上一个命令中显示的可用的软件组中的一个软件组,神之编辑器-Emacs,大约安装了12个软件包
[root@localhost ~]# yum -y groupinstall Emacs
7、更新指定软件组中的软件包
[root@localhost ~]# yum -y groupupdate Emacs
8、卸载指定软件组中的软件包,对于Emacs,安装的时候安装了12个软件包,但是卸载的时候只卸载了4个软件包!
[root@localhost ~]# yum -y groupremove Emacs
9、清除缓存中的rpm 头文件和包文件
[root@localhost ~]# yum clean all
10、搜索相关的软件包
[root@localhost ~]# yum -y search Emacs
11、显示指定软件包的信息
[root@localhost ~]# yum info Emacs
和rpm -qi emacs显示的信息差不多,但不完全相同
12、查询指定软件包的依赖信息,emacs依赖的模块不少啊
[root@localhost ~]# yum deplist emacs
13、列出所有以 yum 开头的软件包
[root@localhost ~]# yum list yum\*
14、列出已经安装的但是不包含在资源库中的rpm 包
# yum list extras