资讯动态

利用reposync与createrepo搭建Kylin V10本地yum仓库全攻略

发布时间:2026/8/19 22:42:44 来源:尧图企业网站定制
1. 为什么需要搭建本地yum仓库在企业内网或者安全隔离环境中服务器往往无法直接访问外部网络资源。这时候如果需要在多台机器上安装或更新软件包传统方式需要每台设备单独下载既浪费带宽又难以管理版本一致性。我曾经参与过一个金融项目客户的生产环境完全隔离每次部署新服务都要手动拷贝几十个依赖包光是解决依赖关系就花了三天时间。本地yum仓库就像是在公司内部建了个软件超市所有需要的安装包都提前缓存到内网服务器上。其他机器安装软件时直接从本地获取速度能提升10倍以上。对于Kylin V10这样的国产操作系统官方源可能部署在特定网络区域通过reposync工具同步到本地后还能避免因网络波动导致的安装中断问题。实际测试中在千兆内网环境下从本地仓库安装MySQL服务仅需12秒而通过外网源下载安装平均耗时2分钟。更重要的是当需要批量部署50台服务器时本地仓库能确保所有机器使用的软件版本完全一致这对运维标准化至关重要。2. 环境准备与工具安装2.1 硬件与系统要求建议使用至少500GB存储空间的x86服务器作为仓库主机内存4GB以上。我上次用虚拟机测试时分配了200GB空间结果同步完基础包和更新包后就只剩20%空间了。Kylin V10的软件包仓库完整同步需要约180GB空间x86和aarch64双架构建议预留30%的额外空间用于后续更新。操作系统需要提前安装Kylin-Server-10-SP1-Release版本这个版本对reposync的支持最完善。遇到过有团队用Ubuntu作为仓库主机结果在同步RPM包时出现兼容性问题。关键是要确保仓库主机的系统架构与客户端一致如果网络中有ARM架构设备需要同步aarch64的软件包。2.2 必备工具安装这三个工具是搭建仓库的核心组件yum install createrepo reposync yum-utils httpdcreaterepo生成仓库元数据的利器版本建议0.10.0以上reposync同步远程仓库的瑞士军刀支持断点续传httpdApache服务用来发布仓库内容安装时有个小技巧可以先配置好临时源再安装# 临时添加官方源 wget https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/base/x86_64/repodata/repomd.xml # 安装基础工具包 yum --enablerepobase install -y createrepo reposync3. 配置yum源文件3.1 编写.repo配置文件在/etc/yum.repos.d/目录下新建kylin.repo文件这是标准配置模板[V10SP1.1-base-x86_64] name Kylin V10 SP1 Base x86_64 baseurl https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/base/x86_64 gpgcheck 1 gpgkey file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled 1重点参数说明gpgcheck1必须开启签名验证避免同步到被篡改的包enabled1显式启用该源避免被其他配置文件覆盖baseurl建议同时配置http和https两个协议源3.2 多架构源配置技巧如果需要支持ARM服务器添加aarch64架构的源配置[V10SP1.1-base-aarch64] name Kylin V10 SP1 Base ARM64 baseurl https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/base/aarch64 gpgcheck 1 gpgkey file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin3.3 验证源有效性执行以下命令检查源是否生效yum clean all yum makecache yum repolist正常应该看到类似输出repo id repo name V10SP1.1-base-x86_64 Kylin V10 SP1 Base x86_64 V10SP1.1-updates-x86_64 Kylin V10 SP1 Updates x86_644. 同步远程仓库到本地4.1 创建存储目录结构建议保持与官方源一致的目录结构mkdir -p /yum/update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/ cd /yum/update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/ mkdir -p base/x86_64 updates/x86_64 addons/x86_64 mkdir -p base/aarch64 updates/aarch64 addons/aarch644.2 使用reposync同步软件包完整同步命令示例reposync -n --repoidV10SP1.1-base-x86_64 \ --repoidV10SP1.1-updates-x86_64 \ --repoidV10SP1.1-addons-x86_64 \ -p /yum/update.cs2c.com.cn/NS/V10/关键参数说明-n仅下载最新版本避免重复版本占用空间-p指定下载路径前缀--download-metadata可选的元数据下载同步过程可能持续数小时建议使用screen或tmux保持会话。遇到过网络中断的情况可以添加--continue参数实现断点续传。4.3 整理同步的软件包将下载的包移动到对应目录mv V10SP1.1-base-x86_64/* base/x86_64/ mv V10SP1.1-updates-x86_64/* updates/x86_64/ mv V10SP1.1-addons-x86_64/* addons/x86_64/5. 构建本地仓库索引5.1 生成repodata元数据对每个子仓库执行createrepo命令createrepo -po base/x86_64 base/x86_64 createrepo -po updates/x86_64 updates/x86_64 createrepo -po addons/x86_64 addons/x86_64参数解释-p生成human-readable的xml文件-o指定输出目录5.2 定期更新仓库新增rpm包后需要重建索引createrepo --update base/x86_64建议编写定时任务每周自动同步更新0 3 * * 6 /usr/bin/reposync -n --repoidV10SP1.1-updates-x86_64 -p /yum/6. 通过Apache发布仓库6.1 配置Apache服务修改/etc/httpd/conf/httpd.conf关键配置DocumentRoot /yum Directory /yum Options Indexes FollowSymLinks AllowOverride None Require all granted /Directory6.2 优化访问性能添加以下配置提升大文件传输效率EnableSendfile on SendfileMaxChunk 5120006.3 启动并验证服务systemctl start httpd systemctl enable httpd在浏览器访问http://服务器IP/update.cs2c.com.cn/NS/V10/应该能看到完整的目录结构。7. 客户端配置与使用7.1 配置客户端repo文件示例客户端配置[local-ks10-base] name Local Kylin V10 Base baseurl http://仓库服务器IP/update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/base/$basearch/ gpgcheck 1 gpgkey http://仓库服务器IP/RPM-GPG-KEY-kylin7.2 测试软件安装yum clean all yum install kylin-desktop7.3 常见问题排查如果遇到Error downloading packages错误检查仓库服务器的SELinux状态客户端与仓库服务器的网络连通性仓库目录的权限设置Apache用户需要有读取权限8. 高级维护技巧8.1 仓库空间清理使用package-cleanup工具清理旧版本package-cleanup --oldkernels --count28.2 增量同步策略创建同步脚本/etc/cron.weekly/sync_repo#!/bin/bash LOG_FILE/var/log/repo_sync.log echo Sync started at $(date) $LOG_FILE reposync -n --repoidV10SP1.1-updates-x86_64 -p /yum/ $LOG_FILE 21 createrepo --update /yum/update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/ $LOG_FILE8.3 仓库镜像备份使用rsync实现异地备份rsync -avz --delete /yum/ 备份服务器IP:/backup/yum_repo/在实际生产环境中建议配置RAID5或更高等级的磁盘阵列来保证仓库数据安全。曾经遇到过硬盘故障导致整个仓库损坏的情况后来我们建立了每日增量备份机制通过NFS挂载到另一台服务器做实时同步。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价