1 yum介绍
1.1 yum基本概念
yum是Yellow dog UpdaterModified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述、功能、提供的文件,依赖性等。正是收集了这些 header并加以分析,才能自动化地完成余下的任务。repository是用 yum-arch或者 createrepo命令创建的,也可以用别人已有的 repository作为镜像。
1.2 yum特点
a) 可以同时配置多个资源库(Repository)
b) 简洁的配置文件(/etc/yum.conf)
c) 自动解决增加或删除rpm包时遇到的倚赖性问题
d) 使用方便
e) 保持与RPM数据库的一致性
1.3 yum工作流程
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。
2 yum软件包安装
2.1 yum包确认
使用rpm –qa | grep yum,查询软件包是否已经安装
2.2 yum包安装
rpm -ivhyum-2.4.3-4.el4.centos.noarch.rpm
2.3 yum常用命令
2.3.1 yum list
a) 列出所有可更新的软件清单
命令:yum list updates
b) 列出所有已安装的软件包
命令:yum listinstalled
c) 列出已安装但不在资源库的软件包
命令:yum list extras
2.3.2 yum info
a) 列出所有软件包的信息
命令:yum info
b) 列出所有可更新的软件包信息
命令:yum info updates
c) 列出所有已安裝的软件包信息
命令:yum infoinstalled
d) 列出所有已安裝但不在YumRepository內的软件包信息
命令:yum info extras
2.3.3 yum清除缓存
a) 清除缓存目录(/var/cache/yum)下的软件包
命令:yum cleanpackages
b) 清除缓存目录(/var/cache/yum)下的headers
命令:yum clean headers
c) 清除缓存目录(/var/cache/yum)下旧的headers
命令:yum cleanoldheaders
3 搭建本地yum服务器
3.1 新建文件夹存放rpm包源
[root@localhosthome]# mkdir iso
[root@localhostiso]# pwd
/home/iso
3.2 拷贝rpm包源
下载linux系统镜像,解压后找到Packages文件夹,并将该文件夹拷贝到/home/iso文件夹中
3.3 createrepo工具安装
yum 使用存储在每一个rpm包里的header信息摘要去完成它的工作,而这个摘要信息由createrepo程序创建,没有安装这个软件进行信息收集,系统是无法查询找到的。安装createrepo工具,然后用这个工具生成YUM通用数据库。
安装以下rpm包时,可通过rpm -qa| grep XXX,XXX代表需要查询的包名,查看是否已经安装该rpm包。
安装以下rpm包时,需先进入到/home/iso/Packages文件夹下。
[root@localhostPackages]# rpm -ivh deltarpm-**********
[root@localhostPackages]# rpm -ivh python-deltarpm*********
[root@localhostPackages]# rpm -ivh libxml2-python*********
[root@localhostPackages]# rpm -ivh createrepo-****.noarch.rpm
3.4 createrepo创建yum仓库
[root@localhostPackages]# createrepo /home/iso/Packages
3.5 客户端配置yum源
基于之前已经建立的yum仓库,这里配置yum客户端,进入/etc/yum.repos.d,创建yum.repo文件(满足*.repo即可),如果有该文件,则无需重新创建。这里采用备份原配置文件,直接修改。
[root@localhostyum.repos.d]# cp rhel-source.repo rhel-source.repo.bak
[root@localhostyum.repos.d]# vim rhel-source.repo
[rhel-source]
name=Red HatEnterprise Linux $releasever - $basearch - Source
baseurl=file:///home/iso/Packages //rpm包源所在路径
enabled=1 //是否启动yum源 0:不启动 1:启动
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-source-beta]
name=Red HatEnterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///home/iso/Packages //rpm包源所在路径
enabled=1 //是否启动yum源 0:不启动 1:启动
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3.6 测试yum仓库配置是否成功
通过实际安装vsftpd软件包来测试是否成功。
[root@localhostyum.repos.d]# yum install vsftpd
如果能安装成功,说明yum仓库配置成功那个,也说明yum服务器搭建成功。