Centos7通过reposync搭建本地Yum源

前言:之前使用rsync同步官方源没问题,但是同步国内的yum源时出现了同步不起的问题,所以改用reposync的方式。

操作系统:centos7.2 x64,2c4G,100G系统盘,500G数据盘。分区lvm格式,数据盘单独一个lv,挂载在 /data目录。

安装apache和repository的管理工具yum-utils
yum install httpd yum-utils createrepo -y
systemctl enable httpd
systemctl start httpd

创建文件保存目录
mkdir -p /data/website/centos/6/
mkdir -p /data/website/centos/7/
mkdir -p /data/website/epel/

修改/etc/yum.repos.d/CentOS-Base.repo

## centos7

[base7]

name=CentOS-7-os-cmiot.local

baseurl=http://mirrors.163.com/centos/7/os/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#released updates

[updates7]

name=CentOS-7-updates-cmiot.local

baseurl=http://mirrors.163.com/centos/7/updates/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful

[extras7]

name=CentOS-7-extras-cmiot.local

baseurl=http://mirrors.163.com/centos/7/extras/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

## centos6

[base6]

name=CentOS-6-os-cmiot.local

baseurl=http://mirrors.163.com/centos/6/os/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates

[updates6]

name=CentOS-6-updates-cmiot.local

baseurl=http://mirrors.163.com/centos/6/updates/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful

[extras6]

name=CentOS-6-extras-cmiot.local

baseurl=http://mirrors.163.com/centos/6/extras/x86_64/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

## epel

[epel6]

name=CentOS-6-epel-cmiot.local

baseurl=https://mirrors.aliyun.com/epel/6/x86_64/

gpgcheck=0

[epel7]

name=CentOS-7-epel-cmiot.local

baseurl=https://mirrors.aliyun.com/epel/7/x86_64/

gpgcheck=0

使用yum repolist验证CentOS-Base.repo文件是否生效

# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                              repo name
base6                                CentOS-6-os-cmiot.local
base7                                CentOS-7-os-cmiot.local
epel6                                CentOS-6-epel-cmiot.local
epel7                                CentOS-7-epel-cmiot.local
extras6                              CentOS-6-extras-cmiot.local
extras7                              CentOS-7-extras-cmiot.local
updates6                             CentOS-6-updates-cmiot.local
updates7                             CentOS-7-updates-cmiot.local

同步CentOS-Base.repo文件中163的centos6包文件

reposync -n --repoid=extras6 --repoid=updates6 --repoid=base6 -p /data/website/centos/6
reposync -n --repoid=epel6 -p /data/website/epel/

同步CentOS-Base.repo文件中163的centos7包文件

reposync -n --repoid=extras7 --repoid=updates7 --repoid=base7 -p /data/website/centos/7
reposync -n --repoid=epel7 -p /data/website/epel/

createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
参数选项说明:

-u  --baseurl <url>
    指定Base URL的地址

-o --outputdir <url>
    指定元数据的输出位置

-x --excludes <packages>
    指定在形成元数据时需要排除的包

-i --pkglist <filename>
    指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。

-n --includepkg
    通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。

-q --quiet
    安静模式执行操作,不输出任何信息。

-g --groupfile <groupfile>
    指定本地软件仓库的组划分,范例如下:
createrepo -g comps.xml /path/to/rpms
    注意:组文件需要和rpm包放置于同一路径下。

-v --verbose
    输出详细信息。

-c --cachedir <path>
    指定一个目录,用作存放软件仓库中软件包的校验和信息。
    当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。

--update
    如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,
    则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。

-p --pretty
    以整洁的格式输出xml文件。

-d --database
    该选项指定使用SQLite来存储生成的元数据,默认项。

创建索引
格式:createrepo -po 源目录 索引元数据的输出位置目录

createrepo -po /data/website/centos/6/base6/ /data/website/centos/6/base6/
createrepo -po /data/website/centos/6/updates6/ /data/website/centos/6/updates6/
createrepo -po /data/website/centos/6/extras6/ /data/website/centos/6/extras6/
createrepo -po /data/website/epel/epel6/ /data/website/epel/epel6/
createrepo -po /data/website/centos/7/base7/ /data/website/centos/7/base7/
createrepo -po /data/website/centos/7/updates7 /data/website/centos/7/updates7
createrepo -po /data/website/centos/7/extras7 /data/website/centos/7/extras7
createrepo -po /data/website/epel/epel7 /data/website/epel/epel7

创建组文件的索引
说明:yum groupinstall的时候会用到这个索引。
wget http://mirrors.163.com/centos/6/base6/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml -P /tmp
wget http://mirrors.163.com/centos/7/base7/repodata/38b60f66d52704cffb8696750b2b6552438c1ace283bc2cf22408b0ba0e4cbfa-c7-x86_64-comps.xml -P /tmp
createrepo -g /tmp/43d*-comps.xml /data/website/centos/6/base6/
createrepo -g /tmp/38b*-comps.xml /data/website/centos/7/base7/

下载KEY文件
用户下载安装这个RPM包时,引入RH官方的这个RPM GPG公钥,用来验证RPM包是不是RH官方签名的
wget http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 -P /data/website/centos/
wget http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6 -P /data/website/centos/

设置apache 根目录设置为/data/website
修改/etc/httpd/conf/httpd.conf
注释#DocumentRoot "/var/www/html"这一行,在其下添加

#DocumentRoot "/var/www/html"
DocumentRoot "/data/website"
<Directory "/data/website">
  Options Indexes FollowSymLinks
  Options Indexes
  AllowOverride All
  Order allow,deny
  IndexOptions Charset=UTF-8
  Allow from all
  Require all granted
</Directory>

删除welcome配置,达到访问服务器地址直接现实站点根目录
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
开启httpd服务
systemctl restart httpd
systemctl enable httpd
浏览器就可以通过访问IP来访问/data/website目录


website目录.jpg

定时同步任务

用户端/etc/yum.repos.d/CentOS-Base.repo文件修改
下面以centos6为例:

[base]
name=CentOS-$releasever - Base - cmiot.local
baseurl=http://172.20.11.249/centos/$releasever/base6
gpgcheck=1
gpgkey=http://172.20.11.249/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates - cmiot.local
baseurl=http://172.20.11.249/centos/$releasever/updates6
gpgcheck=1
gpgkey=http://172.20.11.249/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - cmiot.local
baseurl=http://172.20.11.249/centos/$releasever/extras6
gpgcheck=1
gpgkey=http://172.20.11.249/centos/RPM-GPG-KEY-CentOS-6
[epel]
name=CentOS-$releasever - Extras - cmiot.local
baseurl=http://172.20.11.249/epel/epel6
gpgcheck=0

设置每天定时更新脚本 update.sh

#!/bin/bash
echo 开始同步ubuntu
apt-mirror
echo ubuntu同步结束

echo 开始同步centos6
reposync -n --repoid=extras6 --repoid=updates6 --repoid=base6 -p /data/website/centos/6
reposync -n  --repoid=epel6 -p /data/website/epel/
echo centos6同步结束

echo 开始同步centos7
reposync -n --repoid=extras7 --repoid=updates7 --repoid=base7 -p /data/website/centos/7
reposync -n  --repoid=epel7 -p /data/website/epel/
echo centos7同步结束

#更新元数据
createrepo --update /data/website/centos/6/base6/
createrepo --update /data/website/centos/6/updates6/
createrepo --update /data/website/centos/6/extras6/
createrepo --update /data/website/epel/epel6/
createrepo --update /data/website/centos/7/base7/
createrepo --update /data/website/centos/7/updates7/
createrepo --update /data/website/centos/7/extras7/
createrepo --update /data/website/epel/epel7/

crontab -e 添加定时任务

0 6 * * * /data/update.sh

crontab -l 查看定时任务
0 6 * * * /data/update.sh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

  • 一场大雪,武汉整座城市披上了雪白的衣裳,也给这座城市带来不一样的感受,有因下雪给这座城市带来的不便,也有下雪带来的...
    践行者天翔阅读 310评论 0 0
  • 在湖南涟源市金石镇有一处“乐恺堂”,在这块横匾左右,一副楹联彰显着这片宅院曾经主人的风光伟绩“御史烧车彰正气,翰林...
    江狄阅读 1,161评论 0 1
  • 一起嗨 就在某年某月某日 不开森,一起嗨起来 干掉 伐开森 test 完毕
    baby66阅读 160评论 0 1