自建repo软件仓库

近期主要使用的aliyun的源,主要会用到centos6、zabbix、epel和xen等,由于网络质量不佳,考虑到自建软件仓库

第一步,删除系统自导的源,新建ali.repo,将常用的几个源地址加入

# rm /etc/yum.repos.d/*.repo -fr
# vim /etc/yum.repos.d/ali.repo
[centos6]
name=centos6
baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/
gpgcheck=no
[zabbix]
name=zabbix
baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/
gpgcheck=no
[epel]
name=Epel6
baseurl=http://mirrors.aliyun.com/epel/6/x86_64/
gpgcheck=0
[xen4]
name=xen4
baseurl=http://mirrors.aliyun.com/centos/6/xen4/x86_64/
gpgcheck=no

第二步,新建文件夹yumrepo用来存放软件;

# mkdir /yumrepo

使用reposync将ali.repo里配置源对应的软件下载至/yumrepo文件夹

# yum install reposync -y
# reposync -P /yumrepo/
    .....................       
    漫长的等待;下载完毕
# ll /yumrepo/
total 876
drwxr-xr-x. 4 root root   4096 May  3 12:39 centos6
drwxr-xr-x. 4 root root 876544 May  3 22:14 epel
drwxr-xr-x. 3 root root   4096 May  3 12:30 xen4
drwxr-xr-x. 2 root root  12288 May  3 19:07 zabbix

第三步,安装createrepo,给对应的源文件夹生产repodata文件夹

# yum install createrepo -y
# mv /etc/yum.repos.d/ali.repo /etc/yum.repos.d/ali.repo.bak

将整个yumrepo做出一个独立的仓库

# createrepo /yumrepo/
    .....................       
    漫长的等待;初始化完毕
建立一个完整仓库文件
# vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///yumrepo/

或者 将每个独立的源类型做成独立的的仓库

# createrepo /yumrepo/centos6
# createrepo /yumrepo/zabbix
# createrepo /yumrepo/xen4
# createrepo /yumrepo/epel
    建立多个分散仓库文件
# vim /etc/yum.repos.d/local.repo
[centos6]
name=centos6
baseurl=file:///yumrepo/centos6
gpgcheck=0
[epel]
name=epel
baseurl=file:///yumrepo/epel
gpgcheck=0
[xen4]
name=xen4
baseurl=file:///yumrepo/xen4
gpgcheck=0
[zabbix]
name=zabbix
baseurl=file:///yumrepo/zabbix
gpgcheck=0

第四步,后期如果需要增加其它源,例如rpmforce

# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

查看repo id号,选择需要同步的repo id

# yum repolist all
repo idrepo name  status
all     all enabled: 16,649
rpmforge   RHEL 6 - RPMforge.net - dag   
# reposync --repoid=rpmforce /yumrepo
# ll /yumrepo/
total 892
drwxr-xr-x. 4 root root   4096 May  3 12:39 centos6
drwxr-xr-x. 3 root root 876544 May  4 11:31 epel
drwxr-xr-x. 3 root root   4096 May  4 11:11 other
drwxr-xr-x. 2 root root   4096 May  4 12:05 repodata
drwxr-xr-x. 3 root root   4096 May  4 11:45 rpmforge
drwxr-xr-x. 4 root root   4096 May  3 22:30 xen4
drwxr-xr-x. 3 root root  12288 May  3 22:31 zabbix
# createrepo --update /yumrepo
或
# createrepo --update /yumrepo/rpmforce

第五步,可以通过httpd服务,将yumrepo文件发布httpd,并新建local.repo供大家下载使用

# yum install httpd -y
# ln -sv /yumrepo/ /var/www/html/repo
# service httpd start
生成repo配置文件
# vim /yumrepo/local.repo
[local]
name=local
baseurl=http://SERVERIP/repo/
gpgcheck=no

或

# vim /etc/yum.repos.d/local.repo
[centos6]
name=centos6
baseurl=file:///yumrepo/centos6
gpgcheck=0
[epel]
name=epel
baseurl=file:///yumrepo/epel
gpgcheck=0
[xen4]
name=xen4
baseurl=file:///yumrepo/xen4
gpgcheck=0
[zabbix]
name=zabbix
baseurl=file:///yumrepo/zabbix
gpgcheck=0
[rpmforce]
name=rpmforce
baseurl=file:///yumrepo/rpmforce
gpgcheck=0

局域网其他机器可以通过此地址(http://SERVERIP/repo/local.repo)下载内网的repo文件。

原创文章,作者:Tuolei,如若转载,请注明出处:http://www.178linux.com/15945

评论列表(1条)

  • Tuolei
    Tuolei 2016-05-20 10:22

    最后部分,有点小错误,应该是# vim /etc/yum.repos.d/local.repo
    [centos6]
    name=centos6
    baseurl=http://SERVERIP/centos6
    gpgcheck=0
    [epel]
    name=epel
    baseurl=http://SERVERIP/epel
    gpgcheck=0
    [xen4]
    name=xen4
    baseurl=http://SERVERIP/xen4
    gpgcheck=0
    [zabbix]
    name=zabbix
    baseurl=http://SERVERIP/zabbix
    gpgcheck=0
    [rpmforce]
    name=rpmforce
    baseurl=http://SERVERIP/rpmforce
    gpgcheck=0