阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.x下使用rsync+httpd搭建配置本地yum源库

179次阅读
没有评论

共计 2439 个字符,预计需要花费 7 分钟才能阅读完成。

一、环境说明

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、手动执行测试

同步完后可以看到目录结构如下:

CentOS 6.x 下使用 rsync+httpd 搭建配置本地 yum 源库 

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 如图:

CentOS 6.x 下使用 rsync+httpd 搭建配置本地 yum 源库

 

# 测试安装 lftp 如图:

CentOS 6.x 下使用 rsync+httpd 搭建配置本地 yum 源库

CentOS 6.x 下使用 rsync+httpd 搭建配置本地 yum 源库

到此本地 yum 仓库配置完成!

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-07/145383.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2439字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中