• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Linux中自建YUM仓库

系统管理 彭东稳 8年前 (2016-04-10) 32104次浏览 已收录 0个评论

前言

前面介绍了yum的配置,对于YUM源,Centos虽然默认会提供几个自己的YUM源,但下载速度可能相比较国内的可能会慢一些。互联网上有几个YUM源还是比较不错的,如163的mirrors.163.com、搜狐的mirrors.sohu.com、阿里的mirrors.aliyun.com。虽然我们可以将我们服务器的源指向一个可用的仓库服务器,但是随着Linux的不断升级和改版,我们是否还需要不断的去修改仓库的配置文件,如果只有一台还好,那如果我们有多台Linux系统,那么修改工作量将会很大,那么我们要怎么保证自己的仓库永远指向的是最新的仓库呢? 这就是yum函数的魅力。

YUM函数介绍

首先不管我们使用那家的YUM源,其中会有一个特殊文件夹路径,这为理解yum函数很重要,下面用 mirrors.163.com ,以CentOS6系统为例介绍。

Linux中自建YUM仓库

Linux中自建YUM仓库

让我们查看yum仓库中的“CentOS-Base.repo”中的文件

Linux中自建YUM仓库

其中画了红色框框的就是yum的函数

$releaserver:代表系统的版本,对Yum而言指的是redhat-releaser版本,指向发行版的主版本号;只替换为主版本号,如RedHat 6.5 ,则替换为6。

$basearch:系统基本架构,如果是i686,i586等基本架构就为i386,如果是X86_64就是X86_64了。

$arch: 系统架构

比如我现在的系统是CentOS6.5,系统架构是x86_64,则

自建YUM仓库

虽然系统自带的仓库已经很常用,只要连接到互联网我们就能很容易有获取到互联网的yum仓库。但是如果是在企业内网,企业内部不允许访问互联网,又或者如果企业服务器众多,如果都要从互联网去获取yum仓库,那将很占用带宽。基于这种情况,我们就需要自己在企业内部创建yum仓库。

一、自建仓库需要使用的命令介绍

createrepo(create repo):创建仓库,在自建仓库时,使用命令createrepo会自动帮我们生成repodata文件作为软件的仓库,而其目录下有四个必要文件:filelists.xml.gz,other.xml.gz,primary.xml.gz和repomd.xml,其中最重要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodate目录;三是*.repo配置文件冲突(这个需要特意注意)。

createrepo命令默认是没有安装,所以我们需要提前安装,createrepo的安装包为“createrepo-0.9.9-17.el6.noarch.rpm”,可以使用RPM或yum先将此程序包安装。

二、自建YUM仓库的方法

1)基于光盘镜像创建YUM仓库

2)同步互联网的YUM源

这里使用基于光盘镜像的方式自建YUM源

1)提供一个web服务器

2)给自建仓库提供数据

3)使用createrepo给自建仓库提供元数据

可以看到/var/www/html/yumrepo/repodata目录已经自动生成所需要的所有元数据,仓库信息等文件。

4)验证和查看http仓库的文件

Linux中自建YUM仓库

5)配置和验证yum仓库

编辑yum仓库文件,让仓库路径指向http的yum仓库

$ yum list

如果需要验证RPM包的合法性就需要复制/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6到自建仓库中去,另外还需要在local.repo文件中开启gpgcheck=1。如下操作:

Rsync同步官方YUM源

当自己的YUM仓库建立好了以后,可能需要同步官方的YUM源,另外也可能需要同步一些比如Fedora EPEL的YUM源。如果对方支持rsync的话就好说了,直接可以使用rsync同步。

如:Centos官方yum源

如:Fedora官方yum源

更多其他yum源,可以查询中国科学技术大学做的一个开源的yum源代理站点:http://mirrors.ustc.edu.cn/

其Rsync镜像地址:

  • cernet.mirrors.ustc.edu.cn
  • telecom.mirrors.ustc.edu.cn
  • mobile.mirrors.ustc.edu.cn

中国科学技术大学提供:

中国科学技术大学Linux用户协会(科大 LUG)是由在校的 GNU/Linux 爱好者发起并组成的全校性群众团体,是一个以推广自由软件文化、宣传自由软件价值为目的的协会组织。了解更多


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (0)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!