centos7.6同步rpm包,搭建本地yum源

2019-01-08  本文已影响0人  cyclone_29

由于开发环境只有局域网,没法使用网上的各种YUM源,来回拷贝rpm包安装麻烦,还得解决依赖问题。可以将其他yum源服务器的包同步到本地,可以使用rsync命令直接镜像过来,这里使用的是网易的镜像。
具体镜像方法:

1、进入要存储rpms文件的本地目录,比如/root/rpms/extras目录

2、访问http://mirrors.163.com/centos/目录可以发现有很多的数字目录,这些都是不同的centos版本,但是较老的版本一般都不支持同步了,现在可以同步的只有centos7.6。

image.png
3.进入7.6.1810目录,可以看到有很多的子目录
image.png
4.一般我们要同步的是os(与本地yum源的x86_64对应)、updates、extras,当然你也可以全部同步。我们目前要同步extras目录,那么就进入extras目录,选择适合自己的路径,我是x86_64架构的电脑,进入x86_64,所有的包都在Packages下,如下图:
image.png
5.找到正确的路径后就可以开始同步了,在本地输入rsync -avrt --delete rsync://mirrors.163.com/centos/7/extras/x86_64/Packages/ /root/rpms/extras
image.png
注意Packages后面的/,如果没有这个会把Packages目录也拉取下来

如果命令找不到,使用yum安装rsync

    yum install -y rsync

6.同步完成之后,使用createrepo命令创建元数据。
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据
命令使用:


image.png

参数说明:


image.png
image.png
创建元数据:
    createrepo  -v -p /root/rpms/extras
image.png

创建完成之后,可以看到 /root/rpms/extras目录下多了个repodata目录。


image.png

如果该目录下的rpms文件发生变化,可以使用以下命令更新索引,也可以删除repodata目录重新创建索引,不过如果需要创建索引的文件过多,重新创建需要花费很长的时间

    createrepo -update /root/rpms/extras

使用同样的方法同步os,updates目录。
所有的目录创建完成索引之后,删除/etc/yum.repos.d目录下的所有文件,创建base..repo,文件名随意。

    vi base.repo

参考内容如下:

    [base]
    name=base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    baseurl=file:///root/rpms/x86_64
    enabled=1
    gpgcheck=0

    [updates]
    name=updates
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
    baseurl=file:///root/rpms/updates
    enabled=1
    gpgcheck=0

    [extras]
    name=extras
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
    baseurl=file:///root/rpms/extras
    enabled=1
    gpgcheck=0

    #additional packages that extend functionality of existing packages
    [centosplus]
    name=centosplus
    baseurl=file:///root/rpms/centosplus
    gpgcheck=1
    enabled=0

具体的文件的位置依赖实际的存储位置。

    yum clean all #清除原来的yum缓存
    yum makecache #生成新的yum缓存
    yum listrepo #查看支持的repo

不过这样搭建的源只能供本机使用,如果需要作为yum服务器,简单的方法是添加httpd服务,将rpms目录移动到/var/www/html目录下,同时修改base.repo的内容,步骤如下:

    yum install -y httpd
    mv /root/rpms /var/www/html
    systemctl start httpd.service
    systemctl enable httpd.service

修改base.repo内容,参考如下:

  [base]
  name=base
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  baseurl=http://192.168.1.80/rpms/x86_64
  enabled=1
  gpgcheck=0

  [updates]
  name=updates
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
  baseurl=http://192.168.1.80/rpms/updates
  enabled=1
  gpgcheck=0

  [extras]
  name=extras
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
  baseurl=http://192.168.1.80/rpms/extras
  enabled=1
  gpgcheck=0

  #additional packages that extend functionality of existing packages
  [centosplus]
  name=centosplus
  baseurl=http://192.168.1.80/rpms/centosplus
  gpgcheck=0
  enabled=0

注:192.168.1.80为本机的局域网IP地址,需要按照实际情况填写。
enable: 1 使用该源 0不使用该源
gpgcheck:1 进行检测 0 不进行检测
使用浏览器输入地址:http://192.168.1.80/rpms,查看是否有相应的内容,如果提示没有权限,需要设置/var/www/html/rpms目录的权限

    chmod 755 /var/www/html/rpms
image.png
    yum clean all #清除原来的yum缓存
    yum makecache #生成新的yum缓存
    yum listrepo #查看支持的repo        

完成。
额外:添加mysql源
下载文件:


image.png

这个是centos7的,其他的linux系统不支持
下载完成之后,创建/var/www/html/mysql目录,将下载的文件解压到该目录,同样的方式创建RPMS文件元数据,
创建完成之后,修改base.repo文件,添加mysql源,清除原来的yum缓存,创建新的yum缓存,之后就可以使用以下命令直接安装MySQL了

    yum install -y mysql-community-server
上一篇下一篇

猜你喜欢

热点阅读