一、 yum原理:
1)yum简介:
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的shell前端软件包管理器。
2)yum的作用:
yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。
3)yum的特点:
1、yum能够从指定的服务器上自动下载rpm包,并进行安装;
2、yum能够自动的处理软件包之间的依赖性关系;
3、yum能够一次性安装所有被依赖的软件包,无需繁琐的一次次下载、安装;
4、配置简单(/etc/yum.conf、/etc/yum.repo.d/youname.repo)
5、使用方便
4)yum配置的相关信息:
yum的一切配置信息都储存在/etc/yum.conf的配置文件中,此文件是整个yum系统的重中之重,所以有必要详细介绍。
5)yum仓库:
yum默认仓库放在/etc/yum/repos.d目录下;
凡是放在/etc/yum/repos.d目录下的,以.repo为后缀的文件系统都会识别为yum的仓库文件;
yum仓库是yum的关键之处,yum需要有可靠的repository;
仓库可以是http或ftp站点, 也可以是本地仓库,但必须包含rpm的header,header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等;
正是收集了这些 header并加以分析,才能自动化地完成余下的任务。
6)Yum相关配置命令:
(1)、rpm包的更新
* 检查可更新的rpm包
#yum check-update
* 更新所有的rpm包
#yum update
* 更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
* 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade
(2)、rpm包的安装和删除
* 安装rpm包,如xmms-mp3
#yum install xmms-mp3
* 删除rpm包,包括与该包有倚赖性的包
#yum remove licq
* 注:同时会提示删除licq-gnome,licq-qt,licq-text
(3)、yum暂存(/var/cache/yum/)的相关参数
* 清除暂存中rpm包文件
#yum clean packages
* 清除暂存中rpm头文件
#yum clearn headers
* 清除暂存中旧的rpm头文件
#yum clean oldheaders
* 清除暂存中旧的rpm头文件和包文件
#yum clearn 或#yum clearn all
* 注:相当于yum clean packages + yum clean oldheaders
(4)、包列表
* 列出资源库中所有可以安装或更新的rpm包
#yum list
* 列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla
#yum list mozilla*
* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
* 列出资源库中所有可以更新的rpm包
#yum list updates
* 列出已经安装的所有的rpm包
#yum list installed
* 列出已经安装的但是不包含在资源库中的rpm包
#yum list extras
* 注:通过其它网站下载安装的rpm包
(5)、rpm包信息显示(info参数同list)
* 列出资源库中所有可以安装或更新的rpm包的信息
#yum info
* 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
#yum info mozilla
#yum info mozilla*
* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
* 列出资源库中所有可以更新的rpm包的信息
#yum info updates
* 列出已经安装的所有的rpm包的信息
#yum info installed
* 列出已经安装的但是不包含在资源库中的rpm包的信息
#yum info extras
* 注:通过其它网站下载安装的rpm包的信息
(6)、搜索rpm包
* 搜索匹配特定字符的rpm包
#yum search mozilla
* 注:在rpm包名,包描述等中搜索
* 搜索有包含特定文件名的rpm包
#yum provides realplay
二、案例 - 1:
案例说明:
公司内有一个局域网,主机使用linux操作系统,希望通过一台yum服务器实现各种软件包的安装。
拓扑图:
实验要求:
在局域网内架设一台ftp服务器,在其中放置各种软件包,只需在客户机上配置相应的yum仓库,使得客户机实现网路yum安装;
解决在安装外来rpm包时,所产生的软件包依赖关系;
配置步骤:
1)服务器端配置:
1、FTP服务器的架设:
挂载光盘:
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
安装vsfpt服务:
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
warning: vsftpd-2.0.5-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost Server]#
启动vsftpd服务:
[root@localhost Server]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@localhost Server]#
2、将rpm包导入FTP服务器中;
将光盘镜像中的所有软件包拷贝到ftp服务器中;
[root@localhost ~]# cp -r /mnt/cdrom/. /var/ftp/pub/
You have mail in /var/spool/mail/root
[root@localhost ~]#
3、查看文件的完整性;
查看各个软件包仓库的yum的校验文件是否缺失:
Server目录的完整性:
VT目录的完整性:
Cluster目录的完整性:
ClusterStorage目录的完整性:
2)客户端配置:
1、进入yum仓库目录文件:
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
total 12
-rw-r--r-- 1 root root 254 Aug 4 2009 rhel-debuginfo.repo
[root@localhost yum.repos.d]#
2、创建一个yum仓库:【toftp.repo】
[root@localhost yum.repos.d]# cp rhel-debuginfo.repo toftp.repo
[root@localhost yum.repos.d]# ll
total 16
-rw-r--r-- 1 root root 254 Aug 4 2009 rhel-debuginfo.repo
-rw-r--r-- 1 root root 254 Aug 13 13:11 toftp.repo
[root@localhost yum.repos.d]#
3、编辑toftp.repo仓库:
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# vim toftp.repo
[root@localhost yum.repos.d]#
4、列出仓库,验证yum仓库是否可用:
第一次使用yum时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,来作为yum暂存。
验证测试:
验证安装dovecot服务:
案例扩展:
如何解决在安装外来rpm包时,所产生的软件包依赖关系?
使用httpd-2.2.3-31.el5.i386.rpm测试;
方法一:将外来软件包添加到yum仓库中; 步骤:
1、安装createrepo软件包:
[root@localhost ~]# cd /mnt/cdrom/Server
[root@localhost Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
Preparing... ########################################### [100%]
1:createrepo ########################################### [100%]
[root@localhost Server]#
2、将外来的rpm包导入到/var/ftp/pub/Server目录下:
3、将所有软件包的信息重新写入仓库组文件中,生成全新的仓库的组文件:
4、清除原有的yum缓存:
5、重新列出所有软件包,更新yum缓存:
方法二:使用yum的本地安装,并且不进行公钥校验;
案例小结:
使用yum本地安装时,不能进行证书检测,使得不能够确认软件包的安全性;
案例 - 2:待定,敬请期待!!