1. 程式人生 > >centos上自制repo源來安裝指定版本的rpm包

centos上自制repo源來安裝指定版本的rpm包

為了統一規劃和管理,一般都期望在各伺服器上使用相同的軟體版本來部署服務。直接使用通用的映象源(如阿里、163的),安裝的都是當前最新版的軟體包,這樣就會因為軟體包的升級而導致安裝的版本不一樣。例如docker的安裝,由於docker社群非常活躍,版本更新非常的快,導致測試環境中docker的安裝版本從1.6到1.10各版本都有。

為了避免上述問題,下面以在centos7上安裝docker為例,來自制一個repo源。
1 獲取rpm包
將/etc/yum.conf配置檔案中,keepcache的值設為1後,就會將安裝的rpm包儲存到本地的指定目錄(/var/cache/yum/x86_64/7/),我們可以使用這些下載的rpm包來做yum的軟體源。

2 自制repo
自制repo需要先安裝createrepo工具:

yum install createrepo

之後,進入到放有rpm包的目錄,然後執行createrepo命令:

cd /tmp/install_docker_1.10.3_centos7
createrepo .

執行之後,目錄下會生成一個repodata的目錄,目錄結構大致如下:
這裡寫圖片描述
為了能通過url來獲取yum源,可以把製作的源目錄放到ftp下,然後在repo檔案中指定ftp的url地址:

[install_docker_1.10.3_centos7]
name=install_docker_1.10.3
_centos7
baseurl=ftp://ftp_server_ip/install_docker_1.10.3_centos7/ enabled=1 gpgcheck=0

3 設定repo優先順序
自制的repo檔案放到/etc/yum.repos.d/下就可以用了。但是在其他repo源共存的情況下,為了優先使用自制的repo的話,就需要設定優先順序了。

設定優先順序的功能需要安裝yum的外掛:

yum install yum-plugin-priorities

然後,repo檔案中設定:

priority=N   //N為從991的整數,數值越小優先順序越高

在自制的repo檔案中設定priority=1,在其它repo中設定priority的值大於1的話,安裝的時候就會優先使用自制的repo源了。

[install_docker_1.10.3_centos7]
name=install_docker_1.10.3_centos7
baseurl=ftp://ftp_server_ip/install_docker_1.10.3_centos7/
enabled=1
gpgcheck=0
priority=1