分类: LINUX
2009-05-05 23:49:57
Yun之前,先说一下RPM是什么?RPM是RedHat Package Manager的缩写。这个软件管理的程序是由Red Hat发展出来的,当然也有很多其它相类似的软件管理程序 。RPM是以一种数据库记录的方式来将所需要的软件安装到Linux系统的一套管理程序。其最大的特点就是将要安装的软件先编译过(如果需要的话)并且打包好,通过包装好的软件里头预设的数据库记录,记录这个软件要安装的时候必须要的依赖的其它软件,当安装在Linux系统时,RPM会先根据软件里纪录的数据查询Linux系统中依赖的其它软件是否满足,如果满足则安装,如不满足则不安装。RPM包安装程序最大的问题在于,由于RPM程序是已经打包好的数据,也就是说,里面的数据已经都编译完成,所有安装时一定需要当初安装时的主机环境才能安装。当初建立这个软件的安装环境必须也要在当前主机上出现。如果有过RPM安装经验,碰到这样的问题时的确很头疼。而YUM可以很好的解决这个问题。YUM是Yellow dog Updater, Modified的缩写,是由Duke University所发起的计划,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。在此在特别说明的是,YUM只是为了解决RPM的依赖关系的问题,而不是一种其它的软件安装模式。当然可以实现这样功能的除了YUM外,还有APT (Advanced Package Tool,是由debian所发展的一个软件管理工具)。其实YUM的工作原理并不复杂,每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的文件,就可以知道所有相关联的软件。所以YUM的基本工作流程如下:
服务器端配置:
#mount -o loop rhel-server-5.3-i386-dvd.iso /mnt
#cd /mnt/Server
#rpm -ivh vsftpd-*.rpm
#server vsftpd restart
#cd ..
#cp -R Cluster/ /var/ftp/pub
#cp -R ClusterStorager/ /var/ftp/pub
#cp -R VT/ /var/ftp/pub
#cp -R Server/ /var/ftp/pub (#把这4个目录COPY到vsftp的默认目录下面)
#cd /var/ftp/pub
#rm -rf `find /var/ftp/pub | grep .olddate`
#rpm -q createrepo (# [ $? -ne 0 ] && rpm -ivh createrepo*)
#for i in `find /var/ftp/pub | grep “xml$” |grep comps ` ;do createrepo -g ${i#./*/} ${i%/*/*.xml}; done (# 各种依赖关系生成一个列表)
到此服务器端的配置完成。
客户端配置:
#vim /etc/yum.repos.d/server.repos
本地配置文件内容:
[rpms]
name=Red Hat Enterprise Linux $releasever - $basearch - rpms
baseurl=file:///var/ftp/pub/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[VT]
name=Red Hat Enterprise Linux $releasever - $basearch - VT
baseurl=file:///var/ftp/pub/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[Cluster]
name=Red Hat Enterprise Linux $releasever - $basearch-Cluster
baseurl=file:///var/ftp/pub/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ClusterStorage]
name=Red Hat Enterprise Linux $releaseve -$basearch - ClusterStorage
baseurl=file:///var/ftp/pub/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-Release
远程客户端内容(以远程提供 ftp 服务为例):
[rpms]
name=Red Hat Enterprise Linux $releasever-$basearch -rpms
baseurl=ftp://192.168.0.1/pub/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[VT]
name=Red Hat Enterprise Linux $releasever -$basearch -VT
baseurl=ftp://192.168.0.1/pub/VT
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpmg-pg/RPM-GPG-KEY-redhat-release
[Cluster]
name=Red Hat Enterprise Linux $releasever - $basearch-Cluster
baseurl=ftp://192.168.0.1/pub/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ClusterStorage]
name=Red Hat Enterprise Linux $releasever-$basearch -ClusterStorage
baseurl=ftp://192.168.0.1/pub/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
客户端配置完成
#getenforce (#查看selinux是否打开 )
#chcon -u system_u -r object_r -t etc_t /etc/yum.d/servser.repo
#yum list
#yum grouplist
#yum install
#yum groupinstall
可以了 !遇到复杂的依赖关系以后不需要找rpm 包慢慢的安装,yum可以解决软件各种依赖关系的烦恼.