最近好些年都是做互联网相关项目,基本没有遇到过服务器Centos不能连外网拉取镜像的情况,导致自己在这反面一直是空白的,最近项目部署遇到了镜像基本是Centos空镜像,并且不能拉取的,写一下过程,方便后续遇到问题查看。
当我们需要在Centos服务器安装比如Redis等服务时,只需要执行命令如:
    
     wget http://download.redis.io/releases/redis-6.2.0.tar.gz
    
    — 下载redis服务包
   
    
     yum install -y gcc-c++
    
    — 安装c环境
   
但是如果网络环境不能调用外部镜像则不能进行拉取,其调用外部镜像依赖就是配置就是 /etc/yum.repo.d/ 下的配置包,一般名为:Centos-Base.repo文件,如我当前的配置指向了阿里云镜像,如下:
[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7一种方式是需要的包都去先下载源码包进行安装,这样可能存在的问题就是一次想不全,遇到了又需要再去下。 还有一种一劳永逸的方法就是下载需要的版本的 CentOS Everything的iso镜像进行挂载。
    可以去
    
     CentOS官网
    
    下载需要版本的Everything镜像,选择具体的架构一般都为x86_64,可以直接跳到下载地址,现在一个可用的下载地址:
    
     http://isoredirect.centos.org/centos/7/isos/x86_64/
    
   
     
   
    也可以时间国内镜像网站,如阿里的
    
     https://mirrors.aliyun.com/centos-vault/
    
    ,选择Centos版本后,进入选择Everything的iso镜像,如下图进行下载
   
     
   
自己下载了 三个版本的镜像,上传到百度云盘,地址分别为:
| CentOS-7.4 | 链接: https://pan.baidu.com/s/1gSsDCIovmpE2rbpPVgeQwg 提取码: 2vqi | 
| CentOS-7.8 | 链接: https://pan.baidu.com/s/1IsOyxhxx7mGvcFlaG4kxmA 提取码: fi1m | 
| CentOS-7.9 | 链接: https://pan.baidu.com/s/1mY4MYR6MIxW6hPLQobGLHA 提取码: cbui | 
挂载镜像需要先将iso文件上传到Centos服务器, 省略很长的时间。。。。。。
    挂载镜像到目录(
    
     不一定是该目录,反正最后用的linux的 mount命令而已
    
    ):/media/CentOS7 ,首先查询目录是否存在,存在则先创建:
   
mkdir -p /media/CentOS7
cd /media/CentOS7
     
   
    挂载ISO文件到新建(
    
     /media/CentOS7
    
    )路径下,比如当前的文件上传到了/home 目录下, 则最好是cd 到iso镜像所在目录再执行挂载,否则会报挂载只读的错误,命令和执行情况如下:
   
cd /home
mount -t iso9660 -o loop CentOS-7-x86_64-Everything-2003.iso /media/CentOS7
     
   
    
     bingo 挂载成功
    
   
然后将原来的所有repo文件都 copy到bak目录中:
cd /etc/yum.repo.d
mkdir bak
mv ./* bak
     
   
此时需要根据原 Centos-Base.repo进行修改,则先将该文件copy一份到 /etc/yum.repo.d 在进行修改:
cd bak
cp Centos-Base.repo ../
cd ../
     
   
最后修改Centos-Base.repo为当前的文件内容,vi 进入后可以先删除全部文件行(可以输入 100dd,删除前100行),文件内容如下:
[base]
name=centos7
baseurl=file:///media/CentOS7
enabled=1
gpgcheck=0
gpgkey=file:///media/CentOS7/RPM-GPG-KEY-CentOS-7
     
   
    那么当前可以执行一些命令,看是否能执行,并且是基于iso镜像的,如执行安装c环境,或者查看jdk版本信息,
    
     能执行成功则说明已经挂载成功
    
   
yum install -y gcc-C++
或者
yum search jdk
     
   
    能正常运行命令,则说明挂载没有问题了,大部分的服务或工具等就能正常使用了,
    
     
      
       end
      
     
    
   
 
