1. 概述

1.yum需要一个yum库,也就是yum源。默认情况下,CentOS就有一个yum源。在/etc/yum.repos.d/目录下有一些默认的配置文件(可以将这些文件移到/opt下,或者直接在yum.repos.d/下重命名)。
2.首先要找一个yum库(源),然后确保本地有一个客户端(yum这个命令就是客户端),由yum程序去连接服务器。连接的方式是由配置文件决定的。通过编辑/etc/yum.repos.d/CentOS-Base.repo文件,可以修改设置。
3. 打开CentOS-Base.repo文件,可以看到url路径是CentOS的官网自身的yum源,http://mirrorlist.centos.org/release=releasever&arch=basearch&repo=os。可以将这个mirrorlist注释掉,然后将baseurl设置成国内的阿里云源http://mirrors.aliyun.com/repo/Centos-6.repo,也可以在用于大量的rpm包的前提下设置成自己的本地文件系统(挂载目录),需要移除CentOS-Base.repo文件,并编辑CentOS-Media.repo文件。

name=Description#一个描述,随意。
baseurl=#设置资源库的地址,可以写阿里云也可以是自己的yum
    ftp://
    http://
    file:///
enabled={1|0}#enabled=1开启本地更新模式
gpgcheck={1|0}# gpgcheck=1表示检查;可以不检查gpgcheck=0
gpgkey=#检查的key;如果上面不检查这一行可以不写。

2. 本地镜像源

2.1 第一种方式

虚拟机下挂载
(1)准备iso镜像文件,装载虚拟机

(2)将装载的iso镜像挂载到linux系统

mount   /dev/sr0 /mnt

(3)编辑Local.repo文件

vim Local.repo
================================
centos7
[Local-Base]
name=Local-Base
baseurl=file:///mnt
gpgcheck=0
enabled=1

centos8
[Local-Base]
name=Local-Base
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1

(4)编辑fstab文件,开机自动挂载iso镜像

vim  /etc/fstab 在末尾加上下面这一行,表示开机自动挂载iso镜像
/dev/sr0  /mnt iso9660 defaults 0 0 
2.2 第二种方式

实体机下挂载
(1)下载iso文件
从CentOS的官网下载CentOS的完整版iso文件,并上传到Linux文件系统中,例如/opt/tools/。

(2)创建挂载目录
为iso文件的挂载创建目录。

mkdir /mnt/cdrom

(3)挂载
将iso文件挂载到挂载目录。

mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom

(4)移除或备份Centos-Base.repo文件

cd /etc/yum.repos.d/
mv Centos-Base.repo Centos-Base.repo.back

(5)编辑Centos-Media.repo文件

vim /etc/yum.repos.d/Centos-Media.repo

name=CentOS-$releasever - Media
baseurl=file:///mnt/vcdrom/#将baseurl修改为DVD的挂载目录
gpgcheck=1
enabled=1   #开启本地更新模式

(6)重新加载yum

yum clean all
yum makecache

(7)编写脚本并开机自动挂载
首先,编写脚本。

vim /opt/shell/mymount.sh

#!/bin/bash
#
mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom

其次,修改脚本执行权限。

chmod 777 /opt/shell/mymount.sh

再次,修改/etc/rc.local配置文件。

vim /etc/rc.local

在文件最后一行加上如下

/opt/shell/mymount.sh

最后,重启机器测试。

init 6 

3. 在线镜像源(阿里云源)

1.安装wget

yum install -y wget

2.备份/etc/yum.repos.d/CentOS-Base.repo文件

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back

3.下载阿里云的Centos-8.repo文件

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

4.重新加载yum

yum clean all
yum makecache

搭建镜像源服务器可以参考这篇博客https://blog.csdn.net/u010080562/article/details/127601935

4.配置本地镜像源脚本

内容如下(下载在博客文章最上面那里):

#!/bin/bash
 
# 设定挂载点的目标路径
MOUNT_POINT="/mnt"
 
# 检查/dev/sr0是否已经挂载到了MOUNT_POINT
if mount | grep "on ${MOUNT_POINT} type" > /dev/null; then
    echo "/dev/sr0 is mounted at ${MOUNT_POINT}"
    echo "镜像盘已挂载,继续下一步......"
else
    echo "/dev/sr0 is not mounted, beginning mount now..."
    mount /dev/sr0 $MOUNT_POINT
    if [ $? -eq 0 ]
      then
      echo "挂载镜像盘成功,继续下一步......"
    else
      echo "挂载镜像盘失败!!!请检查镜像盘是否已连接就绪!!!"
      exit 1
    fi
fi

version=$(sed -rn '/^VERSION_ID=/s@.*="?([0-9]+)\.?.*"?@\1@p' /etc/os-release)

echo "当下系统版本为$version,开始配置本地yum库......."

function repo7(){
cat > /etc/yum.repos.d/local.repo <<EOF
[BaseOS]
name=BaseOS
baseurl=file:///mnt/
gpgcheck=0
enable=1
EOF
}

function repo8and9(){
cat > /etc/yum.repos.d/local.repo <<EOF
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
enable=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enable=1
EOF
}


if [ 7 -eq "$version" ]
  then
    repo7
elif [ 8 -eq "$version" ] || [ 9 -eq "$version" ]
  then  
    repo8and9
else
    echo "当前系统版本是$version,暂不支持!!!"
fi

yum clean all && yum makecache

if [ $? -eq 0 ]  
  then
    echo "配置本地yum镜像源成功!!!"
else
  echo "请确认是否已经挂载镜像!!!"	
fi

echo "当下系统版本为$version,结束配置本地yum库......."
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐