loamy 发表于 2013-2-7 08:13:58

在RHEL5下创建自己的yum repository

在Red Hat Enterprise Linux 5中在安装时没有选择所有软件包,以后在使用过程中想再增加缺少的软件包,通常情况可以通过两种途径完成。

一是通过rpm手工安装需要安装的软件包;

二是通过注册RHN,然后由yum通过internet连接到RHN站来新增软件包。

这两种情况都有其不便之外,第一种由于存在软件包的依赖性关系,可能需要在安装一个rpm包之前要安装多个与之关联的软件包,而往往这些依赖的包的名称我们无法正确定位。尤其经常提示缺乏某一动态函数库时,我们就不容易方便查到所需软件包的名称。第二种方法虽然不存在上述情况,但显而易见的问题是需要连接internet,而且安装软件包的速度会很慢。

为了避免上述两种情况的弊端,我们可以通过自己创建本地的repository的方法来实现软件包的快速安装。(此方法前提是你有Red Hat Enterprise Linux 5安装介质盘)
1. 首先,我们可以把几张rhel 5的安装盘copy到某一指定目录下。 如/iso/rhel51server

2. 所有盘都copy完成后,把系统原有的存放repository内容的目录改名。
#mv /iso/rhel51server/Server/repodata /iso/rhel51server/Server/bakrepo

3.安装创建repository的软件包。
#yum install createrepo 或 #rpm -ivh createrepo-0.4.4-2.fc6.noarch.rpm

4. 创建存放自己创建repository软件列表的目录。
#mkdir /iso/rhel51server/Server/repodata

5. 创建自己的repository。
#cd /iso/rhel51server/Server/repodata
#createrepo -g bakrepo/comps-rhel5-server-core.xml /iso/rhel51server/Server
#这个地方要注意,comps-rhel5-server-core.xml一定不能手动生成,默认安装光盘上已经有了
一旦创建完成,会在repodata目录下生成5个文件:
comps-rhel5-server-core.xml中是软件包组分类;
filelists.xml.gz, other.xml.gz,primary.xml.gz是软件包列表;
repomd.xml中存放md5校验信息。
#做完上面的步骤后会有一个错误提示,“Could not remove old metadata dir: .olddata“说目录有问题。不用管他,把那个目录删除掉
<div style="margin: 0cm 0cm 0pt 60pt; text-indent: 0cm;" class="MsoListParagraph">  rm  –rf  /iso/rhel51server/Server/.olddata 重做。
页: [1]
查看完整版本: 在RHEL5下创建自己的yum repository