前言

  • Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。摘自:百度百科
  • 场景1:CentOS默认的yum软件仓库源是境外的,虽然没有被墙,但是有时候下载些软件也还是很慢的,所以将yum源改阿里软件仓库源。
  • 场景2:CentOS服务器处在内网环境中,缺少依赖手动安装那么会非常麻烦,需要花费大量时间寻找rpm包及相互间依赖的包在上传。现在搭建本地的yum软件仓库源,解决环境是无法联网的情况下,要使用yum的问题。

    阿里软件仓库源

    备份基础源

  • 切换到yum源配置路径

    1. cd /etc/yum.repos.d/
  • 备份文件,重命名

    1. mv CentOS-Base.repo CentOS-Base.repo_bak

    阿里软件仓库源-CentOS7

  • 下载阿里云

    1. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 生成元数据缓存

    1. yum makecache
  • 查看

    1. yum repolist

    已加载插件:fastestmirrorLoading mirror speeds from cached hostfile base: mirrors.aliyun.com extras: mirrors.aliyun.com* updates: mirrors.aliyun.com

阿里软件仓库源-CentOS8

  • 下载阿里云

    1. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
  • 编辑AppStream

    1. vim CentOS-AppStream.repo

    [AppStream]name=CentOS-$releasever - AppStream#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra#baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/AppStream/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

  • 编辑Extras

    1. vi CentOS-Extras.repo

    additional packages that may be useful[extras]name=CentOS-$releasever - Extras#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra#baseurl=http://mirror.centos.org/$contentdir/$releasever/extras/$basearch/os/baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/extras/$basearch/os/

    gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

  • 生成元数据缓存

    1. yum makecache
  • 查看

    1. yum repolist

    已加载插件:fastestmirrorLoading mirror speeds from cached hostfile base: mirrors.aliyun.com extras: mirrors.aliyun.com* updates: mirrors.aliyun.com

本地软件仓库源

备份所有源数据并删除

  • 切换路径

    1. cd /etc/yum.repos.d/
  • CentOS源打包备份,避免读到其他源中配置外网而读取不到

    1. tar zcvf repo_bak.tar.gz CentOS-*
  • 删除所有源数据

    1. rm -rf *.repo

    ISO挂载

  • 查看一下,光驱的位置

    1. lsblk

    设置yum(dnf)源为阿里源或本地源 - 图1

  • 在实体机中配置的时候,一般不去查看lsblk的结果。就认作是/dev/cdrom,虚拟机中则会指向虚拟盘。
    1. ll /dev/cdrom
    设置yum(dnf)源为阿里源或本地源 - 图2

    注:可以看到/dev/cdrom实际上是sr0的符号链接。而我们虚拟中光驱的位置是sr1

  • 要使用光驱里的镜像文件,需要将它挂载到当前系统上。这个挂载位置称为挂载点,通常是在 /mnt/ 或者 /media/ 目录下,创建一个子目录

    1. mkdir /mnt/cdrom
  • 手动挂载

    1. mount /dev/sr1 /mnt/cdrom
  • 开启激动自动挂载
    编辑文件

    1. vi /etc/fstab/

    /dev/sr1 /mnt/cdrom iso9660 defaults 0 1

设备位置 挂载点 文件系统 挂载选项 是否备份 检查文件系统的顺序
/dev/sr1 /mnt/cdrom iso9660 defaults 0 1
  • 查看挂载并生效

    1. mount -a
  • 注:CentOS7如果不执行这个命令直接重启可能会出现一些错误。

    设置本地源

  • 新建本地源文件

    1. vi /etc/yum.repos.d/CentOS-Local.repo

    [Local]name=local yumbaseurl=file:///mnt/cdromgpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-KEY-CentOS-7enbled=1

字段 解释
[ ] 软件仓库服务器的id,保证不能已有的仓库id名重复
name 是仓库的名字,也任意
baseurl 基础路径。它支持三种协议http、ftp、file。图中的file:///mnt/cdrom分成两段来理解:file://(协议名) , /mnt/cdrom(挂载点)。若有多个baseurl则依次写出
gpgcheck gpg密钥检查字段,值1为则检查gpg密钥,0为不检查
gpgkey gpg密钥所在路径。最后的文件名可能不同centos版本不同。提前检查一下你的/etc/pki/rpm-gpg目录中的文件
enable 是否启用该仓库服务器,值为1则启用,0为不启用
  • 生成元数据缓存

    1. yum makecache fast

    设置yum(dnf)源为阿里源或本地源 - 图3

  • 查看软件仓库源状态

    1. yum repolist all

    设置yum(dnf)源为阿里源或本地源 - 图4

  • 测试

    1. yum install xinetd

    设置yum(dnf)源为阿里源或本地源 - 图5

    局域网软件仓库源

  • 使用ftp、nginx或Apache服务器,启用并配置可访问到挂载文件夹,在指定baseurl即可。