创建本地YUM源可以显著提高软件安装速度,特别是在多台服务器需要相同软件包的环境中。以下是详细步骤:
确保已安装createrepo
工具:
sudo yum install -y createrepo
准备足够的磁盘空间存放软件包(建议至少10GB)
挂载CentOS/RHEL ISO镜像:
sudo mkdir -p /mnt/iso
sudo mount -o loop /path/to/CentOS-xxx.iso /mnt/iso
创建本地仓库目录:
sudo mkdir -p /var/localrepo
sudo cp -r /mnt/iso/Packages/* /var/localrepo/
创建仓库元数据:
sudo createrepo /var/localrepo
清理并下载所有已安装软件包:
sudo yum clean all
sudo yum install --downloadonly --downloaddir=/var/localrepo <package-name>
或下载整个组:
sudo yum groupinstall --downloadonly --downloaddir=/var/localrepo "Development Tools"
创建仓库元数据:
sudo createrepo /var/localrepo
创建本地repo文件:
sudo vi /etc/yum.repos.d/local.repo
添加以下内容:
[localrepo]
name=Local YUM Repository
baseurl=file:///var/localrepo
enabled=1
gpgcheck=0
禁用其他远程仓库(可选):
sudo sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/CentOS-*.repo
清理并重建缓存:
sudo yum clean all
sudo yum makecache
添加新软件包后更新元数据:
createrepo --update /var/localrepo
设置定期同步(可选):
# 添加cron任务,每周同步一次
0 3 * * 0 root /usr/bin/rsync -avz --delete rsync://mirror.example.com/centos/7/os/x86_64/Packages/ /var/localrepo/ && /usr/bin/createrepo --update /var/localrepo
确保文件权限正确:
sudo chmod -R 755 /var/localrepo
如果需要在多台服务器使用,可以配置为HTTP共享:
sudo yum install -y httpd
sudo ln -s /var/localrepo /var/www/html/localrepo
sudo systemctl start httpd
然后在其他服务器上使用baseurl=http://your-server-ip/localrepo
对于RHEL系统,可能需要先注册订阅才能访问官方仓库
通过以上步骤,您就创建了一个高效的本地YUM源,可以显著提高软件安装速度并减少对外部网络的依赖。