以前總結的搭建本地yum源是經過rsync直接同步其餘在線的yum源,例如清華大學大YUM源,可是相似的阿里雲的yum源,由於其不支持rsync因此不能進行同步,node
一樣的,想要同步其餘一些官方的YUM源,也要對方支持rsync才能支持同步,而有很但願安裝的YUM源並不支持rsync,這樣怎麼辦呢?nginx
因上述緣由我想到了另外一種思路去同步「全部」我想同步的YUM源,而且搭建成本地可用的YUM源,下面記錄下個人思路。apache
1、首先預備好一臺nginx或者apache的server來作本地的YUM源(我喜歡nginx),該操做能夠去參考「YUM本地源搭建,且Rsync同步官方」的操做。centos
2、搭建好的本地YUM源server後,再下載想要同步YUM源的repo文件。bash
例如:ide
wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo工具
3、安裝幾個工具,默認的centos是沒有安裝,yum installcreaterepo yum-utils -yoop
安裝這兩個工具主要使用 createrepo 和reposync 這兩個命令阿里雲
4、上面的操做完畢後,執行命令yum repolistspa
例如:
其中「倉庫標識:中的名字是咱們下面將要用到的
5、例如我想要把HDP-2.2做爲本地YUM源(這是我在作Ambari + hadoop實驗的yum源,由於該源可能被不少臺hadoop datanode端用到全部,搭建本地yum源會節約大量的出口帶寬
提升工做效率。)那麼我執行以下命令行
[root@localhosttmp]# reposync -r HDP-2.2
以下開始自動更新yum源到本地文件夾
固然在這一步,咱們能夠參考下reposync的幫助,直接把想要同步的yum源直接定位到但願下載的某個目錄,
例如使用參數 -p
也能夠使用 -d 來刪除本地老舊,yum源已經不存的安裝包。
6、當經過reposync命令同步yum源到想要指定的路徑之下後,而後使用createrepo命令創對該路徑下的rpm包建立爲本地的YUM倉庫
6.1、到這裏的時候,其實想要的yum本地倉庫已經算是製做完畢, 爲了簡化工做量,咱們能夠把上面的操做製做成bash腳本
思路以下:
reposync自動同步想要的yum 源到指定的路徑,由於每次同步後,內容可能有所改變,因此須要從新執行createrepo命令從新建立YUM倉庫。
7、上面的操做完畢後,就是在client端製做repo文件並指向咱們本地的YUM源了,由於咱們同步YUM源的時候,可能會忽略掉對方的gpgkey,那麼記得「gpgcheck=0」
以上是思路總結,暫時沒有時間和精力作這樣的本地YUM源,遇到的時候再參考此思路作吧。