很多时候,出于网络安全原因,在内网(局域网)没有外网(互联网)的情况下,yum因为连接不到软件库(yum的源),yum是没法安装软件的。这个时候我们就需要通过自建一个yum源来实现。yum的源分为2部分:一个是系统完整镜像自带了很多软件,这也是大部分软件包和软件的依赖包的安装源,体积一般也就2-4G左右。另外一个就是EPEL的外部第三方软件源,EPEL是(Extra Packages for Enterprise Linux,企业版Linux扩展包)的简称,为“红帽系”的操作系统(RHEL、CentOS、阿里Anolis OS、华为EulerOS、麒麟KylinOS等)提供额外的软件包,这部分的软件包就特别大了,而且这部分软件包的依赖包大部分也在系统镜像里面。所以我们一般内网自建源,用系统镜像就可以了。对应需要EPEL源里面的软件包的伙伴,可以参考下一篇关于如果下载yum软件包及其依赖包的内容。
1、下载和当前操作系统版本对应的系统镜像ISO文件,并挂载。(一定要下载对应的版本号的系统镜像,否则后期使用yum安装软件的时候可能会提示软件包的依赖包版本对不上)mkdir -p /mnt/dvdmount -o loop /root/CentOS-7-x86_64-Everything-2009.iso /mnt/dvd
mkdir /repo
\cp -r /mnt/dvd /repo
umount /mnt/dvd注意:这里是临时挂载ISO文件,然后拷贝到一个目录。如果直接永久挂载ISO的话可能导致系统重启开机后进入到ISO光盘的引导安装界面,导致无法开机进入系统
将/etc/yum.repos.d/ 所有的以.repo结尾的文件全部重命名为:xxxx.repo.backup,当然也可以不修改,但过多的repo(原来的repo指向的源都是外网源,yum无法连接,需要等待连接超时)会导致yum命令查找包的速度变慢2、编辑 /etc/yum.repos.d/CentOS-Local-Media.repo(名字随便取)
#(名字随便取)[local-media] name=CentOS-Local-Media #(名字随便取)baseurl=file:///repo/#file:///mnt/dvd2/ #如果有第二张光盘则挂载后在这里添加gpgcheck=1gpgkey=file:///repo/RPM-GPG-KEY-CentOS-7 #确保有这个文件,没有的话gpgcheck改成 0 就也可以,这样就会不检查gpgkeyenabled=1如果需要局域网共享这个源,则需要使用nginx建立一个站点,根目录指向/repo。然后把baseurl和gpgkey修改为nginx服务器的网络地址。比如:
[Intranet-repo] name=Intranet-repobaseurl=http://192.168.1.1/gpgcheck=1gpgkey=http://192.168.1.1/RPM-GPG-KEY-CentOS-7enabled=1
3、重建yum缓存
yum clean allyum makecache
4、测试yum
yum install wget
这里提供CentOS老版本系统的镜像下载地址,方便大家找到对应版本的CentOS镜像。官网:
https://vault.centos.org/
建立对应版本的yum源文件
vi /etc/yum.repos.d/CentOS-Vault.repo
[C7.6.1810-fasttrack]name=CentOS-7.6.1810 - Fasttrackbaseurl=http://vault.centos.org/7.6.1810/fasttrack/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7enabled=0
另外,顺便提供查找和下载rpm包的地址
https://vault.centos.org/7.6.1810/fasttrack/x86_64/Packages/