当前位置: > shell编程 >

shell建立yum源

时间:2014-04-29 02:13来源:linux.it.net.cn 作者:IT网

用Redhat系的Linux OS(RHEL, CentOS 和 Fedora等)时,使用yum工具来管理软件包是很有必要的,当管理很多的系统或者不方便连接外部yum源时,建立一个内部使用的yum源也是很重要的。平时使用RHEL系列的OS比较多(目前是RHEL6.4),在2年前就建立了内部使用的yum源,偶尔也需要将其更新到最新的版本,所以还是重复做一下建立yum源的步骤。这里简单记录以下如何建立yum源吧,其实也很简单。

1. 准备工作:安装必须要的软件(如createrepo),准备yum源用到的RPM包
2. 复制RPM包到特定的目录下
3. 在目录下运行createrepo命令
4. 将yum源的目录作为http或ftp服务暴露出来
5. 在客户端系统上,配置yum源,一般是在 /etc/yum.repo.d/ 目录中建立test.repo这样文件,在里面配置使用的yum源的URL.
6. 配置好yum源后,可以运行“yum repolist”看一下效果,也可以“yum install $your-software”来使用。

写了个简单的脚本来建立yum源,如下:

#!/bin/bash
# set up YUM repository
# yum install createrepo # install 'createrepo' tool
base_dir=/home/yum/pub/6Server
# mkdir -p $base_dir/{SRPMS,i386,x86_64} # create dir if needed
for i in "SRPMS i386 x86_64"
do
# cp /your-src/*.rpm $base_dir/$i/ # you may copy RPMs to the destination
pushd $base_dir/$i > /dev/null 2>&1
createrepo .
popd >/dev/null 2>&1
done

使用yum源的系统上,关于yum源的配置文件,如下:

# put this .repo file into /etc/yum.repo.d/ directory.[rhel$releasever]name=Red Hat Enterprise Linux $releaseverbaseurl=http://mydomain.com/yum/$releasever/$basearchenabled=1gpgcheck=0[rhel6_optional]name=Red Hat Enterprise Linux rhel6_optional
baseurl=http://mydomain.com/yum/$releasever_optional/$basearchenabled=1gpgcheck=0

注意:在我的64位的RHEL6.4上,$releasever被解析为6Server,$basearch被解析为x86_64.

有网友问到:建立repo时,如何保持或者创建一些group让其关联安装一些列RPM包呢(可用yum grouplist命令查看的)?
方法是在createrepo时,添加-g参数来指定准备好的关于group信息的XML文件,命令为:
[user@machine] createrepo -g comps.xml MyRepo
comps.xml文件的示例为:

<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
  <group>
   <id>mygroup</id>
   <default>False</default>
   <uservisible>True</uservisible>
   <display_order>1024</display_order>
   <name>My group</name>
   <description></description>
    <packagelist>
      <packagereq type="mandatory">glibc</packagereq>
      <packagereq type="mandatory">rpm</packagereq>
      <packagereq type="mandatory">yum</packagereq>
    </packagelist>
  </group>
</comps>

这个comps.xml文件可以用命令来生成:

yum-groups-manager -n “My Group” –id=mygroup –save=mygroups.xml –mandatory yum glibc rpm

参考资料:

http://ramblings.narrabilis.com/creating-a-yum-repository-repo-and-creating-a-yum-group-to-install-kickstart

http://yum.baseurl.org/wiki/YumGroups

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容