repodata创建本地YUM仓库

repodata创建本地YUM仓库
参考一createrepo是linux下的创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。
yum(Yellow dog Updater,Modified)主要的功能是方便添加、删除和更新rpm软件包。可以解决软件包依存问题,更便于管理大量的系统更新问题。它可以同时配置多个仓库或叫资源库(repository),就是存放更新和依存的软件包的地方。

1、准备文件服务器,以httpd为例,请确保是否已经安装httpd程序包。

[root@localhost /]# rpm -q httpd

httpd-2.2.15-26.el6.centos.x86_64

2、在/var/www/html目录,创建目录openstack,将要制定为yum仓库的rpm包放置于/var/www/html/openstack下。

3、创建yum仓库:

(1)、如果repodata存在,则先删除。

#rm -rf /var/www/html/openstack/repodata

(2)、使用命令createrepo创建yum仓库,执行命令后会生产repodata,这样就成功创建yum仓库。

#createrepo /var/www/html/openstack

备注:如果命令createrepo为安装请先安装createrepo:#yum -y install createrepo

4、启动httpd服务。

#service httpd start

5、配置使用自建的yum仓库。

[openstack]

name=openStack Respository

baseurl=http://127.0.0.1/openstack

enabled=1

gpgcheck=0

参考二

repodata作为软件的仓库,其目录下有四个必要文件:filelists.xml.[gz],other.xml.[gz],primary.xml.[gz]和repomd.xml(md意思是metadata),其中最主要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodate目录;三是*.repo配置文件冲突(这个需要特意注意)。
创建本地源步骤如下:
1、安装createrepo包;
2、新建本地源目录(假若本地源在当前家目录下)
  2.1 $mkdir -p local-yum/i386/       #其中i386是包放置目录
  2.2 将安装包放置到i386目录中
  2.3 createrepo local-yum/           #创建一个源
3、配置yum源(可以单独新建一个repo文件,也可以添加到已经存在的repo文件中)
************************************************************
[local-yum]
name=local-yum
baseurl=file:///home/test/local-yum/               #文件目录不能设置到i386,否则本地源使用会报错
enabled=1
gpgcheck=0
解释:
[....]     代表这个库的名字,必须是唯一的,不可以重复。
name=     是这个库的说明,没有太大的实际意义,只是一个字段说明。
baseurl=  说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等
enabled=1  说明启用这个更新库,0表示不启用。
gpgcheck=1 表示使用gpg文件来检查软件包的签名
gpgkey=    表示gpg文件所存放的位置,此处也可以有http方式的位置。
************************************************************
4、yum工具介绍
  yum工具有很多的参数可供使用,如下:
       yum install 软件名1 [软件名2] [...]
       yum update [软件名1][软件名2] [...]
       yum check-update
       yum upgrade [软件1] [软件2] [...]
       yum remove | erase 软件名1 [软件名2] [...]
       yum list [...]
       yum info [...]
       yum provides | whatprovides feature1 [feature2] [...]
       yum clean [ packages | headers | metadata | dbcache | all ]
       yum makecache
       yum groupinstall 软件组1 [软件组2] [...]
       yum groupupdate 软件组1 [软件组2] [...]
       yum grouplist [hidden] [groupwildcard] [...]
       yum groupremove group1 [group2] [...]
       yum groupinfo 软件组名 [...]
       yum search 字符串1 [字符串2] [...]
       yum shell [文件名]
       yum resolvedep 依赖关系1 [依赖关系2] [...]
       yum localinstall rpm包1 [rpm包2] [...]
       yum localupdate rpm包1 [rpm包2] [...]
       yum reinstall 软件包1 [软件包2] [...]
       yum downgrade 软件包1 [软件包2] [...]
       yum deplist 软件包1 [软件包2] [...]
       yum repolist [all|enabled|disabled]
       yum help [command]
   以上就是yum全部的可用参数了,自动分析依赖性关系是它最好的一个特点,也是目前最方便的安装方法。
5、更新本地源,在仓库所在目录下
  createrepo --update local-yum/          # 更新本地源
  createrepo local-yum/                   # 重新生成metadata
6、用的上的命令
     createrepo --update:
  有时候你的软件仓库中含有很多的软件包,虽然只是其中的一小部分有所改动但是你却不必为每个软件包重新产生元数据,这样做明显太浪费时间了。这就是--update选项诞生的原因。
  像之前一样运行createrepo命令但是添加了--update选项.       $createrepo --updatelocal-yum/   现在createrepo只更新那些在上次产生元数据之后被改变,添加或者删除了的项目.
     verifytree   如果你刚刚做了一个repo并且你想要验证在你的repo中的所有东西都是正确且可以完成其功能的话,你可以运行erifytree命令来检查所有的repodata和软件包。
7、创建基于html的更新源
  7.1 安装httpd安装包
  7.2 如上创建本地更新源
      cd /var/www/html/
      mkdir -p nsmc
      cd nsmc
      mkdir RPMS SRPMS
  7.3 拷贝相关文件到RPMS和SRPMS目录中
  7.4 在nsmc所在目录下执行如下命令
      createrepo nsmc           #创建仓库
  7.5 service httpd start       #启动httpd守护进程,这是关键地方之一,否则在其他机器上会提示找不到相关源
  7.6 编写repo文件
*************************************
[nsm]
name=NeoShine Linux Desktop 5 nsmc repo - i386
baseurl=http://xxx.xxx.xxx.xxx/nsmc
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release
注意:gpgcheck设置为0,则不需要认证签名。