适用场景:在封闭的内网环境中,无法使用互联网进行安装各种rpm包的时候,离线yum源可以解决大部分问题,配置号后可直接使用yum进行安装包
1.准备好镜像源ISO:
例如以下示例,具体可参考自己的系统进行下载,这是centos的:
https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
2.将下载好的ISO放至服务器的指定目录下,这里放在 /data/media文件夹下,可自定义
3.给ISO增加可执行权限
chmod 777 CentOS-7-x86_64-DVD-1810.iso
4.挂在镜像iso到目录 /data/media
5.创建一个执行脚本,并赋予执行权限
vi /root/auto_source.sh
写入如下内容,记得修改自己的iso地址:
#备份原本地源
cp -rf /etc/yum.repos.d /etc/yum.repos.d_bak#删除默认原本地源
rm -rf /etc/yum.repos.d/*#配置本地源,创建Media.repo文件,并配置如下内容
cd /etc/yum.repos.d/Media.repo
echo '[iso]' >> Media.repo
echo 'name=Media' >> Media.repo
echo 'baseurl=file:///data/media/' >> Media.repo
echo 'gpgcheck=0' >> Media.repo
echo 'enabled=1' >> Media.repo#清除yum缓存
yum clean all#缓存本地yum源
yum makecache
6.执行脚本
sh /root/auto_source.sh
7.测试安装库
yum install iotop
安装完成,如果局域网内的其他服务器也需要用到这个源,那么需要在这台服务器上安装一个nginx作为转发,nginx的主要内容如下:
server {listen 80;server_name 服务器的ip;root /data/media;#access_log logs/host.access.log main;location / {autoindex on;}}
并且,需要在使用yum源的机器上的/etc/yum.repo.d/里面创建一个新的repo文件,并且引用这个源地址:
vim /etc/yum.repos.d/local.repo
里面的内容为:
[iso]
name=Media
baseurl=http://刚才填写的服务器ip/
gpgcheck=0
enabled=1
最后,在有源的服务器上放开80端口,允许使用源的机器访问他的80端口:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="需要使用源的ip" accept'firewall-cmd --reload
最后的最后,在使用源的机器上执行:
yum clean allyum makecacheyum install 你想要安装的包即可