CentOS 7 搭建本地YUM仓库,并定期同步阿里云源


 

目录导航:

  1. 系统环境

  2. 修改yum 源为阿里云源

  3. 安装yum相关的软件

  4. 根据源标识同步源到本地目录

  5. 安装nginx开启目录权限保证本地机器可以直接本地yum源

  6. 客户端创建repo文件

  

 

1. 系统环境 

# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) # uname -r 3.10.0-957.el7.x86_64 # ip a |awk 'NR==9{print $2}'|awk -F '/' '{print $1}'
10.0.0.100

 

2. 修改yum 源为阿里云源

2.1 备份系统自带的yum源

# tar -zcvf CentOS-bk.tar.gz /etc/yum.repos.d/CentOS-*

 

2.2 修改yum源 

# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

或者

# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  # curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

 

2.3 检验阿里云源是否正常

# yum repolist

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

 * base: mirrors.aliyun.com

 * extras: mirrors.aliyun.com

 * updates: mirrors.aliyun.com

#仓库标识仓库名称状态

repo id                                                                     repo name                                                                                                status

!base/7/x86_64                                                              CentOS-7 - Base - mirrors.aliyun.com                                                                     10,019

!epel/x86_64                                                                Extra Packages for Enterprise Linux 7 - x86_64                                                           12,902

!extras/7/x86_64                                                            CentOS-7 - Extras - mirrors.aliyun.com                                                                      371

!updates/7/x86_64                                                           CentOS-7 - Updates - mirrors.aliyun.com                                                                   1,103

repolist: 24,395

 

3. 安装yum相关的软件

# yum install -y wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel createrepo yum-utils

yum-utils:reposync同步工具

createrepo:编辑yum库工具

plugin-priorities:控制yum源更新优先级工具,这个工具可以用来控制进行yum源检索的先后顺序,建议可以用在client端。

 

注:由于很多人喜欢最小化安装,上边软件是一些常用环境。

 

4. 根据源标识同步源到本地目录

4.1 创建本地目录

# mkdir /mirror

 

4.2 同步到本地目录

# reposync -p / mirror

注:不用担心没有创建相关目录,系统自动创建相关目录,并下载,时间较长请耐心等待。

可以用  repo -r --repoid=repoid 指定要查询的repo id,可以指定多个(# reposync -r base -p /mirror   #这里同步base目录到本地)

更新新的rpm包

# reposync -np /mirror

注:时间同样较长,请耐心等待。

 

4.3 创建索引

# createrepo -po /mirror/base/ /mirror/base/ # createrepo -po /mirror/extras/ /mirror/extras/ # createrepo -po /mirror/updates/ /mirror/updates/ # createrepo -po /mirror/epel/ /mirror/epel/

 

4.4 更新源数据

# createrepo --update /mirror/base # createrepo --update /mirror/extras # createrepo --update /mirror/updates # createrepo --update /mirror/epel

 

4.5 创建定时任务脚本

# vim /mirror/script/centos_yum_update.sh #!/bin/bash echo 'Updating Aliyum Source' DATETIME=`date +%F_%T` exec > /var/log/aliyumrepo_$DATETIME.log reposync -np /mirror if [ $? -eq 0 ];then createrepo --update /mirror/base createrepo --update /mirror/extras createrepo --update /mirror/updates createrepo --update /mirror/epel echo "SUCESS: $DATETIME aliyum_yum update successful"
  else
    echo "ERROR: $DATETIME aliyum_yum update failed"
fi

 

4.6 将脚本加入到定时任务中

# crontab -e # Updating Aliyum Source 00 13 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /mirror/script/centos_yum_update.sh

每月第一个周六的13点更新阿里云yum源

 

5. 安装nginx开启目录权限保证本地机器可以直接本地yum源

5.1 创建运行账户

# groupadd nginx # useradd -r -g nginx -s /bin/false -M nginx # yum install nginx -y

 

5.2  修改nginx 配置文件

# vim nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; root /mirror ; #这里是yum源存放目录 location / { autoindex on; #打开目录浏览功能 autoindex_exact_size off; # off:以可读的方式显示文件大小 autoindex_localtime on; # on/off:是否以服务器的文件时间作为显示的时间 charset utf-8,gbk; #展示中文文件名 index index.html; } error_page 500 502 503 504  /50x.html; location = /50x.html { root html; } } } 

 

6. 客户端创建repo文件

注:搭建好后yum安装速度并没有想象中的那么快,安装时解决依赖速度也很慢。 

# vim CentOS7.x-Base.repo [base] name=CentOS-$releasever - Base - mirror.template.com baseurl=http://10.0.0.100/base/
path=/ enabled=1 gpgcheck=0 [updates] name=CentOS-$releasever - Updates - mirror.template.com baseurl=http://10.0.0.100/updates/
path=/ enabled=1 gpgcheck=0 [extras] name=CentOS-$releasever - Extras - mirrors.template.com baseurl=http://10.0.0.100/extras/
path=/ enabled=1 gpgcheck=0 [epel] name=CentOS-$releasever - epel - mirrors.template.com baseurl=http://10.0.0.100/epel/
failovermethod=priority enabled=1 gpgcheck=0

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM