怎样设置你的软件仓库
概述:
有时你会发现你需要搜集一些 rpm 格式的软件包,把他们放到一个地方,并且能够通过运
行系统的 yum 工具去使用它们.这样做其实很简单.
yum 使用的软件仓库其实就是一个目录.这个目录包含有很多 rpm 软件包和 yum 用来获
得软件包信息(相关性,文件列表等)的"元信息".yum 就可以通过 ftp/http 或者文件的 URI(包括
通过 NFS)获取它.
步骤:
1.搜集一些软件包放到一个目录里.你可以创建任意多个子目录,但是必须有一个存放所有
子目录的顶层目录.我们就在这里创建我们的软件仓库.
2.yum 使用存储在每一个 rpm 包里的信息摘要去完成它的工作.这个摘要信息
由'createrepo'程序创建,如果你没有'createrepo'可以通过以下方式安装:
yum install createrepo
如果你在不使用 rpm 的机器上组建软件仓库,可以从下面的地址下载'createrepo'
http://createrepo.baseurl.org/ 然后手动安装.
安装完'createrepo'之后就可以运行它,它只有一个参数,就是你想创建软件仓库的那个顶层
目录.假如第一步我们创建的目录是/srv/my/repo,我们只需运行:
createrepo /srv/my/repo
你会看到很多内容飞过但是最后应该会以无错结束。最后你应该会有一个叫
做/srv/my/repo/repodata 的目录,该目录至少含有 4 个文件。
3. 为了让 yum 知道你的这个软件仓库,你需要把一个.repo 文件加入到你的 yum 的配置
文件中。在你需要使用这个软件仓库的系统上,在以下目录下创建一个新的文
件:'''/etc/yum.repos.d/'''。文件名可以是任意合法文件名但是文件扩展名必须是以.repo 结尾。
这里是我们将其命名为: 'myrepo.repo'.
在该文件中我们只需要包含以下内容即可:
[myrepo]
name = This is my repo
baseurl = url://to/get/to/srv/my/repo/
这就是在次文件中的所有内容. 其中 'baseurl' 行的内容是机器用来获取软件仓库的路径名。
7
如果机器可以直接访问它或者把它作为一个文件系统挂载的话你还可以使用如下的 baseurl:
baseurl = file:///srv/my/repo/
''注意:上面的路径中 file 后是三个反斜杠 (/)而不是两个,上面的写法是正确的。
如果你通过 http 或者 https 服务器访问该文件,你可以使用如下的 baseurl:
baseurl = http://servername/my/repo
更多的关于客户端 repo 配置细节可以在 yum.conf 的帮助页面中找到。
4. 现在当你每次修改诶,删除或者添加一个新的 RPM 包到/srv/my/repo 时你只需要
重新创建一下软件仓库的 metadata 就可以了。步骤和第二步中的一样。
== 更多高级选项==
1. createrepo --update: 有时候你的软件仓库中含有很多的软件包,虽然只是其中的一小
部分有所改动但是你却不必为每个软件包重新产生元数据,这样做明显太浪费时间了。
这就是 re --update 选项诞生的原因。你像之前一样运行 createrepo 命令但是添加了--
update 选项.
例如:
createrepo --update /srv/my/repo
现在 createrepo 只更新那些在上次产生元数据之后被改变,添加或者删除 u 了的项目。
2. createrepo -x package_file_name: 假设你有几个软件包在你的软件仓库目录中,但是你
确实不想被人随便看到,你可以使用 createrepo 命令轻松的运行软件包:
createrepo -x filename -x filename2 -x filename* /srv/my/repo
如果你像知道更多关于使用 createrepo 来创建和维护你自己的软件包仓库的方法请访问