createrepo:创建本地源
repodata作为软件的仓库,其目录下有四个必要文件:filelists.xml.[gz],other.xml.[gz],primary.xml.[gz]和repomd.xml(md 意思是 metadata),其中最主要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodate目录;三是*.repo配置文件冲突(这个需要特意注意)。
创建本地源步骤如下:
1、安装createrepo包;
1、安装createrepo包;
yum install createrepo
=================================================================================================================
Package Arch Version Repository Size
=================================================================================================================
Installing:
createrepo noarch 0.9.9-22.el6 rhel-source 96 k
Installing for dependencies:
deltarpm x86_64 3.5-0.5.20090913git.el6 rhel-source 71 k
python-deltarpm x86_64 3.5-0.5.20090913git.el6 rhel-source 27 k
Transaction Summary
=================================================================================================================
Install 3 Package(s)
Package Arch Version Repository Size
=================================================================================================================
Installing:
createrepo noarch 0.9.9-22.el6 rhel-source 96 k
Installing for dependencies:
deltarpm x86_64 3.5-0.5.20090913git.el6 rhel-source 71 k
python-deltarpm x86_64 3.5-0.5.20090913git.el6 rhel-source 27 k
Transaction Summary
=================================================================================================================
Install 3 Package(s)
2、新建本地源目录(假若本地源在当前家目录下)
3、配置yum源(可以单独新建一个repo文件,也可以添加到已经存在的repo文件中)
************************************************************
[local-yum]
name=local-yum
baseurl=file:///home/test/local-yum/
enabled=1
gpgcheck=0
解释:
[....]
name=
baseurl=
enabled=1
gpgcheck=1 表示使用gpg文件来检查软件包的签名
gpgkey=
4.更新本地源,在仓库所在目录下
createrepo --update local-yum/ # 更新本地源
createrepo local-yum/ # 重新生成metadata
客户端验证
yum clean all
yum list all
yum intall xxx
5、用的上的命令
createrepo --update:
有时候你的软件仓库中含有很多的软件包,虽然只是其中的一小部分有所改动但是你却不必为每个软件包重新产生元数据,这样做明显太浪费时间了。这就是--update 选项诞生的原因。
像之前一样运行 createrepo 命令但是添加了--update 选项.
$createrepo --update local-yum/
现在 createrepo 只更新那些在上次产生元数据之后被改变,添加或者删除了的项目.
verifytree
如果你刚刚做了一个 repo 并且你想要验证在你的 repo 中的所有东西都是正确且可以完成其功能的话,你可以运行 erifytree 命令来检查所有的 repodata 和软件包。
yum clean all
yum list all
yum intall xxx
5、用的上的命令
6、创建基于html的更新源
6.1 安装httpd安装包
6.2 如上创建本地更新源
cd /var/www/html/
mkdir -p nsmc
cd nsmc
mkdir RPMS SRPMS
6.3 拷贝相关文件到RPMS和SRPMS目录中
6.4 在nsmc所在目录下执行如下命令
createrepo nsmc #创建仓库
6.5 service httpd start #启动httpd守护进程,这是关键地方之一,否则在其他机器上会提示找不到相关源
6.6 编写repo文件
*************************************
[nsm]
name=redhat6.6 nsmc repo - x64
baseurl=http://xxx.xxx.xxx.xxx/nsmc
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release
注意:gpgcheck设置为0,则不需要认证签名。
*************************************
[nsm]
name=redhat6.6 nsmc repo - x64
baseurl=http://xxx.xxx.xxx.xxx/nsmc
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release
注意:gpgcheck设置为0,则不需要认证签名。