最近好些年都是做互联网相关项目,基本没有遇到过服务器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