公司的服务器都是禁止连接外网的,刚安装的系统缺少很多软件包,只能下载Tarball或者RPM包上传到服务器上安装,解决依赖问题过于麻烦,浪费时间。

yum可以自动检测并解决软件包之间的依赖问题,可是默认情况下,yum依赖网络工作。这种情况下,我们有两种解决方式。一个是挂载ISO镜像,一个是建立一个局域网内的yum“源”服务器。

一、挂载ISO镜像

CentOS安装镜像内有一个Packages目录,里面包含大量的RPM包,可以以此来创建本地yum仓库。

1、首先下载CentOS镜像

我们安装的时候,大部分都是选择最小化安装。但是为了获取比较齐全的包,此时就需要下载完整的镜像,有DVD版本和Everything版本,一般来说,DVD版本就够用了,Everything版本更加齐全。

我这里就以Everything版本为例,CentOS-7-x86_64-Everything-2009.iso,整个镜像接近10G!

2、将镜像上传到主机

这里自由发挥,用喜欢的工具上传到主机上。笔者上传到了/home/CentOS-7-x86_64-Everything-2009.iso

3、挂载镜像

使用mount挂载iso镜像。

mkdir /mnt/vcdrom
mount /home/CentOS-7-x86_64-Everything-2009.iso /mnt/vcdrom
4、拷贝出需要的包

进入挂载的目录,我们需要的只是Packages目录。将它拷贝出来。

cp -av /mnt/vcdrom/Packages /media/local-repos
5、通过rpm创建yum仓库

首先在Packages里找到createrepo-*这个包,通过rpm安装。createrepo需要两个依赖包,提前安装。

rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm

使用createrepo创建仓库。

createrepo -v /media/local-repos/Packages
5、编辑yum配置文件

yum默认使用网络源,需要将其禁用。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
mv /etc/yum.repos.d/CentOS-Debuginfo.repo /etc/yum.repos.d/CentOS-Debuginfo.repo.bak
mv /etc/yum.repos.d/CentOS-Vault.repo /etc/yum.repos.d/CentOS-Vault.repo.bak

配置本地源/etc/yum.repos.d/CentOS-Media.repo

[c7-media]  #仓库名称,不能用特殊符号
name=CentOS-$releasever - Media  #仓库描述
baseurl=file:///media/local-repos/Packages/  #指定仓库的路径,可以有多个,这里我们只有一个,将另外两个删掉
        #file:///media/cdrom/
        #file:///media/cdrecorder/
gpgcheck=0  #禁用检验软件包的数字签名
enabled=1  #启用仓库
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

更新yum缓存。

yum clean all
yum makecache

尝试使用yum安装软件试试吧。

二、建里局域网源服务器

以后再说……忙去了……

最后修改:2021 年 02 月 04 日 10 : 51 AM