yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。它基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。
所以使用使用YUM来安装软件,就可以不用去到处找依赖关系的RPM了。很方便。
若linux机器上没有安装yum的话,那么首先要安装yum。可以通过下面的步骤来安装yum
第一步:安装yum
第二步:下载createrepo包并安装 下载地址:
ftp://195.220.108.108/linux/dag/redhat/el4/en/i386/dag/RPMS/createrepo-0.4.6-1.el4.rf.noarch.rpm
安装createrepo 包rpm -ivh createrepo-0.4.6-1.el4.rf.noarch.rpm
软件准备就算是完了,下面主要讲创建repo 文件的过程
第三步:挂载下载的RHEL4.6-i386-AS-DVD.iso 到本地 并完成yum本地源配置
[root@Lovehack mnt]# mkdir /mnt/RHELAS4 // 建立RHELAS4文件来挂载ISO
[root@Lovehack mnt]# mount -o loop RHEL4.6-i386-AS-DVD.iso /mnt/RHELAS4 //挂载iso
[root@Lovehack mnt]# mkdir /mnt/repodata //建立repodata 文件夹
[root@Lovehack mnt]# ln -s /mnt/RHELAS4/RedHat/RPMS/*.rpm /mnt/repodata //为镜像所有的rpm做一个链接
[root@Lovehack mnt]# createrepo /mnt/repodata //创建repomd.xml等必须文件,此过程比较长
1536/1536 - vino-2.8.1-1.i386.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
[root@Lovehack mnt]# cd /etc/yum.repos.d/ //进入yum文件夹创建repo文件,把原有的.repo文件备份
[root@Lovehack yum.repos.d]# ls
as4-base.repo.bak as4-update.repo.bak backup CentOS-Base.repo.bak
[root@Lovehack yum.repos.d]# vi iso.repo //新建iso.repo文件,内容如下
[iso]
name=iso
baseurl=file:///mnt/repodata
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RHELAS4/RPM-GPG-KEY
第四步:[root@Lovehack yum.repos.d]# yum update
Setting up Update Process
Setting up repositories
iso 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 589 kB 00:00
iso : ################################################## 1536/1536
Added 1536 new packages, deleted 0 old in 17.81 seconds
No Packages marked for Update/Obsoletion
第五步:剩下的就是安装你想要的东东了,至此已经全部完成
yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。
Redhat和Fedora的软件安装命令是rpm,但是用rpm安装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级 麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依赖关系而导致其他的软件不能用是非常恼人的。令人高兴的是,Fedora终于推出了类似于 ubuntu中的apt的命令yum,令Fedora的软件安装变得简单容易。Yum 有以下特点:
*可以同时配置多个资源库(Repository)
*简洁的配置文件(/etc/yum.conf)
*自动解决增加或删除rpm包时遇到的倚赖性问题
*使用方便
*保持与RPM数据库的一致性
1.yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目 录下,这是整个yum系统的重中之重,我在的F9(应该是说Fedora9吧)中查看了这一文件,大家一起来看下:
[hanlong@localhost F9常用文档]$ sudo more /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
下面简单的对这一文件作简要的说明:
cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
debuglevel:除错级别,0──10,默认是2
logfile:yum的日志文件,默认是/var/log/yum.log。
exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用686的包来升级。
gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。
2.好了,接下来就是yum的使用了,首先用yum来升级软件,yum的操作大都须有超级用户的权限,当然可以用sudo。
yum update,这一步是必须的,yum会从服务器的header目录下载rpm的header,放在本地的缓存中,这可能会花费一定的时间,但比起yum 给我们带来方便,这些时间的花费又算的了什么呢?header下载完毕,yum会判断是否有可更新的软件包,如果有,它会询问你的意见,是否更新,还是说 y吧,把系统始终up to date总是不错的,这时yum开始下载软件包并使用调用rpm安装,这可能要一定时间,取决于要更新软件的数目和网络状况,万一网络断了,也没关系,再 进行一次就可以了。升级完毕,以后每天只要使用yum check-update检查一下有无跟新,如果有,就用yum update 进行跟新,时刻保持系统为最新,堵住一切发现的漏洞。用yum update packagename 对某个单独包进行升级。
下面是yum常用的一些命令:
1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
4 清除YUM缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all 清除所有
1)清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages
2)清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers
3)清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders
4)清除缓存目录(/var/cache/yum)下的软件包及旧的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)