> CentOS > CentOS入门 >

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



(责任编辑:IT)