标签:本地yum仓库 本地repo仓库 自动同步网上yum仓库
一、环境说明
yum库,是readhat/CentOS 系统软件仓库,可以通过http ftp协议传输存储在网络上的仓库;yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决软件包依赖性问题,便于管理大量系统的更新维护软件包问题。yum 库可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
本教程就以同步网络上的开源yum仓库到本地,配置成本地的yum仓库(使用光盘即可,有兴趣的可以自己配置以下)
系统采用CentOS6.8_x64 ,rsync httpd,同步CentOS6.x软件包到本地,以及添加常用rpm包到本地yum仓库;测试机器内网ip为10.168.118.93
二、安装rsync和httpd
1、安装软件
#yum install rsync httpd -y
暂时不做配置,rsync用来从外网yum仓库同步用的,httpd用来发本地yum仓库
2、配置httpd
修改httpd配置如下(大约在295行)
DocumentRoot "/data1/www/html/" #这个目录即下面脚本中同步外网yum仓库到本地的位置
3、启动httpd服务
#service httpd start
#chkconfig --httpd on
三、同步外网yum脚本
1、同步脚本
#cat rsync_yum.sh
#!/bin/bash YUM_SITE="rsync://mirrors.kernel.org/centos/" #存放路径,我这里用的是独立分区的目录 LOCAL_PATH="/data1/www/html/centos/" #需要同步哪些目录 LOCAL_VER=‘./‘ BW_limit=2048 LOCK_FILE="/var/log/yum_server.pid" RSYNC_PATH="" # check update yum server pid MY_PID=$$ if [ -f $LOCK_FILE ]; then get_pid=`/bin/cat $LOCK_FILE` get_system_pid=`/bin/ps -ef|grep -v grep|grep $get_pid|wc -l` if [ $get_system_pid -eq 0 ] ; then echo $MY_PID>$LOCK_FILE else echo "Have update yum server now!" exit 1 fi else echo $MY_PID>$LOCK_FILE fi # check rsync tool if [ -z $RSYNC_PATH ]; then RSYNC_PATH=`/usr/bin/whereis rsync|awk ‘ ‘‘{print $2}‘` if [ -z $RSYNC_PATH ]; then echo ‘Not find rsync tool.‘ echo ‘use comm: yum install -y rsync‘ fi fi verlist=6 #指定要同步的yum源,6即CentOS6,也可以同时同步多个版本,以空格隔开 # sync yum source,only 6 for VER in $verlist; do $RSYNC_PATH -avzH --delete --bwlimit=$BW_limit --exclude-from=/data1/workshell/exclude.txt $YUM_SITE/$VER/ $LOCAL_PATH/$VER/ done # clean lock file `/bin/rm -f $LOCK_FILE` echo "rsync end $(date +%Y-%m-%d_%k:%M:%S)" >> /data1/www/html/centos/centos_rsync_is_end.txt exit 1
2、添加脚本到计划任务
添加脚本到crontabl计划中每周一凌晨3点执行同步
1 3 * * 1 /data1/workshell/rsync_yum.sh 2> /dev/null
3、手动执行测试
同步完后可以看到目录结构如下:
4、客户端测试
移除系统自带的repo仓库,创建local.repo配置内容如下:
#cd /etc/yum.repos.d/ #mkdir bak #mv *.repo ./bak
#cat local.repo
[base] name=CentOS - base baseurl=http://10.168.118.93/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://10.168.118.93/centos/RPM-GPG-KEY-CentOS-6 [updates] name=CentOS - updates baseurl=http://10.168.118.93/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://10.168.118.93/centos/RPM-GPG-KEY-CentOS-6 [extras] name=CentOS - extras baseurl=http://10.168.118.93/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://10.168.118.93/centos/RPM-GPG-KEY-CentOS-6
#yum clean all
#yum makecache 如图:
#测试安装lftp如图:
到此本地yum仓库配置完成!
本文出自 “學地止境” 博客,请务必保留此出处http://dyc2005.blog.51cto.com/270872/1942480
CentOS6.x rsync+httpd搭建配置本地YUM源库
标签:本地yum仓库 本地repo仓库 自动同步网上yum仓库
原文地址:http://dyc2005.blog.51cto.com/270872/1942480