yum服务器设置

转自:http://blog.chinaunix.net/uid-22141042-id-1789605.html

不得不说,RedHat的确很邪恶,如果我们直接用他自带的系统碟做YUM源的话,总是会得到类似下面的信息:

media://1192656534.547140%232/httpd-2.2.3-11.el5.i386.rpm:[Errno 4] IOError: <urlopen error unknown url type: media>
Trying other mirror.
Error: failed to retrieve httpd-2.2.3-11.el5.i386.rpm from rhel
error was [Errno 4] IOError: <urlopen error unknown url type: media>

不过,还好Linux是开源的,我们可以自己RH的rpm包自己来架设一个源。

首先,我们按照他的目前结构把光盘上所有的文件拷贝一份到服务器上(假设服务器目录为/yumrepo)

# mount /dev/cdrom /mnt
# cp -ar /mnt/* /yumrepo

然后,我们要先安装一个RPM包才能开始架设YUM仓库

# cd /yumrepo/Server
# rpm -ihv createrepo-0.4.4-2.fc6.noarch.rpm 
warning: createrepo-0.4.4-2.fc6.noarch.rpm: Header V3 DSA signature: NOKEY, keyID 37017186
Preparing...               ########################################### [100%]
   1:createrepo            ########################################### [100%]

这个包安装之后,会生成一个新的命令:/usr/bin/createrepo,而这个命令是我下面必须要用到的。
首先生成最重要的东西,是最基本的RPM:

#cd /yumrepo/Server
# cp repodata/comps-rhel5-server-core.xml /root
# rm -rf repodata
# createrepo -g  /root/comps-rhel5-server-core.xml  .
2159/2159 - xorg-x11-drv-cyrix-1.1.0-4.i386.rpm       
Saving Primary metadata
Saving file lists metadata
Saving other metadata

comps-rhel5-server-core.xml这个文件保存的是分组的信息,这个是createrepo这个命令不能自动生成的,我们要先把这个信息保存下来。

然后其他的几个目录,Cluster,ClusterStorage,VT也按上面的方法做一次,要注意的是comps-rhel5-server-core.xml这个文件名会不相同,但都以comps开头。我们的YUM仓库到这里也就建好了。

接下来,我们要做的就是要设置/etc/yum.repo.d里面的内容了,大家按我这个里面的写就是:

[Server]
name=Red Hat Enterprise Linux Server Core
baseurl=file:///yumrepo/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[VT]
name=Red Hat Enterprise Linux Virtual Technology
baseurl=file:///yumrepo/VT
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[Cluster]
name=Red Hat Enterprise Linux Cluster
baseurl=file:///yumrepo/Cluster
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ClusterStorage]
name=Red Hat Enterprise Linux Cluster Storage
baseurl=file:///yumrepo/ClusterStorage
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

当然,你也可以通过http与ftp方式把这个目录发布出去,那只要把相关的file:///yumrepo/这部分修改一下就可以了。

PS:
也可以修改这个文件:/usr/lib/python2.4/site-packages/yum/yumRepo.py中的411行来直接使用光盘做YUM仓库
比如我们上面的例子中,可改为:

remote = url + '/' + relative

改为:

remote = “/mnt” + '/' + relative

其中mnt为你光盘的挂载点

原文地址:https://www.cnblogs.com/nufangrensheng/p/3485771.html