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閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容

  • 一場大雪,武漢整座城市披上了雪白的衣裳,也給這座城市帶來不一樣的感受,有因下雪給這座城市帶來的不便,也有下雪帶來的...
    踐行者天翔閱讀 312評論 0 0
  • 在湖南漣源市金石鎮有一處“樂愷堂”,在這塊橫匾左右,一副楹聯彰顯著這片宅院曾經主人的風光偉績“御史燒車彰正氣,翰林...
    江狄閱讀 1,189評論 0 1
  • 一起嗨 就在某年某月某日 不開森,一起嗨起來 干掉 伐開森 test 完畢
    baby66閱讀 161評論 0 1