CentOS7下使用FTP搭建局域网内Yum源

Author Avatar
山小杰 1月 24, 2018
  • 在其它设备中阅读本文章

国内有很多Yum的镜像源,比如阿里、网易等等,速度很快,使用着很方便。
但是,有些公司的生产环境是不能连接外网的,这样的环境下,不作一些措施的话,在CentOS上安装软件会很麻烦,依赖包的问题会很让人头疼。
所以最好是搭建一个局域网内yum仓库源。

准备工作

需要预先下载好Everything的CentOS7安装光盘包,Everything版的软件包比较全。
这里以CentOS7.3为例:
CentOS-7-x86_64-Everything-1611.iso

截止到写这篇文章时,CentOS已经更新到了7.4
放上版本号对应列表:

1406 - 7.0
1503 - 7.1
1511 - 7.2
1611 - 7.3
1708 - 7.4

配置FTP服务器

  • 首先创建挂载目录
    # mkdir /media/cdrom
  • 挂载ISO文件
    • 使用VMware安装的虚拟机挂载方式,需要先确认好虚拟机已经连接上ISO文件:
      # mount /dev/sr0 /media/cdrom
    • 非CentOS7虚拟机,先上传ISO文件到某一目录,再挂载:
      # mount -t iso9660 -o loop /upload/CentOS-7-x86_64-Everything-1611.iso /media/cdrom
  • 安装ftp软件(已安装的话就不用再安装了,可以使用# rpm -qa | grep vsftpd命令检测)
    # rpm -ivh /media/cdrom/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm
  • 启动vsftpd服务,并设为开机自启
    # systemctl start vsftpd
    查看21端口:
    # netstat -ntl | grep 21
    设为开机自启:
    # systemctl enable vsftpd
    浏览器访问ftp://ip_or_hostname
    如果连接超时,说明开启了防火墙,需要关闭防火墙服务并关闭开机自启:
    # systemctl stop firewalld
    # systwmctl disable firewalld
  • 部署yum仓库到ftp服务器
    将安装光盘中的文件复制到ftp文件夹/var/ftp/pub/
    只复制两个目录(Packages,repodata)、一个文件(RPM-GPG-KEY-CentOS7)即可:
    # mkdir /var/ftp/pub/centos7
    # cp -rvf /media/cdrom/Packages /var/ftp/pub/centos7
    # cp -rvf /media/cdrom/repodata /var/ftp/pub/centos7
    # cp -rvf /media/cdrom/RPM-GPG-KEY-CentOS7 /var/ftp/pub/centos7
    确认文件复制完毕以后就可以卸载光盘了
    # umount /media/cdrom
    再次访问ftp://ip_or_hostname,就可以看到rpm包了

    配置yum仓库文件

  • 备份原有的yum仓库文件
    # cp -rvf /etc/yum.repo.d /upload/
  • 删除原有yum仓库配置文件
    # rm -rf /etc/yum.repo.d/*
  • 编辑新的yum仓库文件
    # cd /etc/yum.repo.d
    # vim ftp.repo
    [ftp]
    # 名字随便填
    name=ftp-repo
    # ftp服务器路径
    baseurl=ftp://ip_or_hostname/pub/centos7/
    # 1为启用GPG KEY检查,0禁用
    gpgcheck=0
    # 1为启用该仓库,0禁用
    enabled=1
    # GPG KEY路径
    gpgkey=ftp://ip_or_hostname/pub/centos7/RPM-GPG-KEY-CentOS-7
    
  • 保存后,执行
    # yum clean all
    Loaded plugins: fastestmirror, langpacks
    Cleaning repos: ftp
    Cleaning up everything
    Cleaning up list of fastest mirrors
    
  • 生成缓存
    # yum makecache
    Loaded plugins: fastestmirror, langpacks
    ftp                                                                                                                | 3.6 kB  00:00:00     
    (1/4): ftp/group_gz                                                                                                | 155 kB  00:00:00     
    (2/4): ftp/filelists_db                                                                                            | 6.6 MB  00:00:00     
    (3/4): ftp/primary_db                                                                                              | 5.6 MB  00:00:00     
    (4/4): ftp/other_db                                                                                                | 2.4 MB  00:00:00     
    Determining fastest mirrors
    Metadata Cache Created
    
    然后就可以愉快的在内网环境下使用 # yum -y install package_name 来安装软件啦!!!