您的位置:首页 > 运维架构 > Linux

Linux下搭建yum服务器

2015-08-30 17:45 591 查看
一:yum简介:

YUM是Yellow dog Updater, Modified的缩写,是由Duke University所发起的计划,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。在此在特别说明的是,YUM只是为了解决RPM的依赖关系的问题,而不是一种其它的软件安装模式。

服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。

客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

二:yum可以分为本地yum和网络yum。

本地yum是将原文件放在本地主机上,而网络yum则是将服务器上面的文件通过www或者ftp方式下载到本地,然后进行安装。

三:案例一:网络yum服务器

安装ftp服务器,将原文件存储在ftp上,然后安装网络yum,实现客户机可以从yum服务器上下载软件包

客户机请求过程:



切换到服务器端

1:[root@lyt ~]# mkdir /mnt/cdrom/     #建立挂载点

2:[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/       #挂载光盘

3:[root@lyt ~]# cd /mnt/cdrom/Server/          #切换到该目录下

4:[root@lyt Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm          #安装ftp服务器

5:[root@lyt ~]# cp -r  /mnt/cdrom/.   /var/ftp/pub/       #将/mnt/cdrom/中的光盘文件全部拷贝到/var/ftp/pub/ 中

6:[root@lyt Server]# service vsftpd restart         #重启ftp服务器

7:在Server、VT、Cluster、ClusterStorage目录中都有一个repodata文件

[root@lyt VT]# cd repodata/      #切换到repodata文件中,查看该目录



8:切换到客户端:

[root@localhost ~]# cd  /etc/yum.repos.d/       #切换到改目录

[root@localhost yum.repos.d]# cp -p rhel-debuginfo.repo yum.repo       #将rhel-debuginfo.repo 文件拷贝成yum.repo文件(注:新生成文件名必须以.repo结尾)

[root@localhost yum.repos.d]# vim yum.repo        #编辑该文件,如下图:



[root@localhost yum.repos.d]# yum repolist       #将记录每个软件包信息的文件primary.xml.gz下载到本地,如图



测试:服务器端服务器更新了软件,在客户端查看软件包信息是否查看到该更新软件:

9:切换到服务器端

如图所示,通过ftp服务器:将下图的文件导入到/var/ftp/pub/Server目录中,图示已导入:



10:在服务器端必须重建分组及依赖关系,即:在仓库Server、Cluster、VT、ClusterStorage的repodata中重新生成primary.xml.gz文件,该文件是由comps-rhel5-xxx-st.xml生成的。 这样在客户端才能检测出结果:

[root@lyt repodata]# cd /mnt/cdrom/Server/

[root@lyt Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm             #安装createrepo包,安装此包后可以执createrepo命令。

[root@lyt Server]# createrepo  –g  /var/ftp/pub/Server/repodata/comps-rhel5-server-core.xml  /var/ftp/pub/Server/   #在Server仓库中,用createrepo命令来重新生成RPM 依赖关系及分组信息,可以在/var/ftp/pub/Server/repodata/中重新生成primary.xml.gz文件(-g表示分组信息。)

[root@lyt VT]# createrepo -g /var/ftp/pub/VT/repodata/comps-rhel5-vt.xml /var/ftp/pub/VT         #在VT仓库中,用createrepo命令来重新生成RPM依赖关系及分组信息,可以重新生成可以在/var/ftp/pub/VT/repodata/中重新生成primary.xml.gz文件   (-g表示分组信息)

[root@lyt Cluster]# createrepo -g /var/ftp/pub/Cluster/repodata/comps-rhel5-cluster.xml /var/ftp/pub/Cluster      #在Cluster仓库中,用createrepo命令来重新生成RPM依赖关系及分组信息,可以重新生成可以在/var/ftp/pub/Cluster/repodata/中重新生成primary.xml.gz文件 (-g表示分组信息)

[root@lyt ClusterStorage]# createrepo -g /var/ftp/pub/ClusterStorage/repodata/comps-rhel5-cluster-st.xml /var/ftp/pub/ClusterStorage/         #在ClusterStorage仓库中,用createrepo命令来重新生成RPM依赖关系及分组信息,可以重新生成可以在/var/ftp/pub/ClusterStorage/repodata/中重新生成primary.xml.gz文件
(-g表示分组信息)

11:[root@localhost ~]# yum  clean all      #清除客户端缓存

[root@localhost ~]# yum list all |grep rrdtool      #使用yum查看rrdtool软件包。如图:



测试:在客户端上安装http服务器:







案例二:使用http服务器

切换到服务器端

1:[root@lyt Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm      #安装http服务器

[root@lyt html]# cp  –r  /mnt/cdrom/.  /var/www/html/       #将光盘文件拷贝到/var/www/html中

[root@lyt ~]# service httpd restart            #重启http服务器



注:其他步骤与案例一 8~11步一样

案例三:本地yum服务器

1:[root@localhost yum.repos.d]# cp rhel-debuginfo.repo local.repo        #拷贝文件,名为local.repo

[root@localhost yum.repos.d]# vim local.repo          #编辑该文件如图所示:



转载自:http://www.linuxidc.com/Linux/2012-08/68568p2.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: