在CentOS中使用createrepo创建自定义仓库
在 CentOS 系统中,使用 createrepo 构建自定义 YUM 仓库是一个非常实用的技能,尤其是当你在内网环境下需要批量部署软件,或者想管理自己开发的 RPM 包时。
1. 安装必要的工具
首先,你需要安装 createrepo 工具,它是生成仓库元数据(metadata)的核心。
1 | sudo yum install -y createrepo |
2. 准备存放 RPM 包的目录
创建一个文件夹来存放你的 RPM 文件。通常建议放在 /var/www/html(如果你打算通过 HTTP 共享)或者任意你喜欢的路径。
1 | mkdir -p /data/custom-yum/packages |
将你准备好的 .rpm 文件全部拷贝到这个 packages 目录下。
3. 初始化仓库元数据
运行 createrepo 命令,它会扫描目录下的 RPM 包并生成 repodata 目录,里面包含了 YUM 客户端索引所需的所有信息。
1 | createrepo /data/custom-yum/ |
注意: 如果你后续往目录里新增了 RPM 包,需要更新索引,运行:
createrepo --update /data/custom-yum/
4. 配置本地 YUM 源文件
为了让系统能够识别这个新仓库,你需要在 /etc/yum.repos.d/ 目录下创建一个 .repo 配置文件。
1 | sudo vi /etc/yum.repos.d/custom.repo |
写入以下内容:
1 | [custom-repo] |
- baseurl: 如果是本地路径,使用
file://;如果是远程服务器,使用http://或ftp://。 - gpgcheck: 如果你的包没有经过数字签名,请设置为
0。
5. 验证与使用
清理缓存并查看仓库是否加载成功:
1 | yum clean all |
如果你在列表中看到了 custom-repo,那么你就可以像平时一样使用 yum install [你的包名] 来安装自定义包了。
6.通过 HTTP 共享仓库
如果你想让内网的其他机器也能访问这个仓库,可以配合 Nginx 或 Apache 使用:
- 安装 Nginx:
yum install nginx -y - 将 Nginx 的 root 指向
/data/custom-yum/。 - 确保防火墙允许 80 端口通行。
- 其他机器的
.repo文件中,将baseurl修改为:baseurl=http://<你的服务器IP>/