当前位置: 首页 > news >正文

搭建yum源站点与配置本地yum源repo文件

搭建CenOS Stream 9本地yum源站点与配置本地yum源repo文件

本次实操围绕无外网环境下的软件安装需求展开,完整演示从「本地yum源站点搭建」到「客户端repo配置」再到「离线安装验证」的全流程,共分为4个核心环节:

  1. 前置准备:确保系统镜像正常连接,为本地源提供软件包基础

  2. 服务端脚本搭建:通过Shell一键部署http协议的本地yum源站点

  3. 客户端脚本配置:自动生成repo文件,指向本地源

  4. 离线验证:断网状态下正常安装/卸载软件,验证本地源有效性

在企业生产环境中,绝大多数服务器均处于内网隔离状态,禁止访问公网,核心原因如下:

  1. 安全合规要求

公网存在病毒、木马、恶意攻击风险,生产服务器直接连外网极易引发数据泄露、服务器被入侵等安全事故,企业安全策略会强制断网隔离。

  1. 网络稳定性与带宽管控

公网网络波动、延迟高,会导致软件下载失败、安装中断;同时批量服务器同时访问公网源会占用大量带宽,影响核心业务网络。

  1. 版本统一与兼容性保障

公网yum源软件版本会持续更新,易出现版本冲突、依赖不兼容问题;本地源可锁定系统镜像内的稳定版本,保证所有服务器软件环境一致。

  1. 批量部署效率提升

搭建一台本地源服务器,内网所有机器均可通过内网高速访问,安装速度远快于公网,适配服务器批量初始化、运维标准化场景。

  1. 离线环境刚需

金融、政务、能源等涉密/封闭内网,完全无外网出口,本地yum源是安装软件的唯一可行方案

实操逻辑梳理

  1. 服务端:以系统镜像为软件包仓库,通过http共享给内网机器

  2. 客户端:指向服务端地址,替代公网源,实现离线安装

  3. 全程Shell脚本化:简化操作、避免人为失误,可直接用于企业标准化运维

具体实战步骤

一、确保系统镜像处于连接状态

二、用Shell脚本快速搭建本地yum源站点

cat >local_yum_repos.sh<<EOF #!/bin/bash #作用:快速搭建本地yum源 #作者:传棋(Jaking) #邮箱:Jaking@vip.163.com #日期:2026年4月10日 #安装httpd yum install -y httpd &>/dev/null if [ $? -eq 0 ];then echo "httpd安装成功!" else echo "请检查yum源及网络状态!" exit fi #启动httpd systemctl enable httpd --now systemctl status httpd --no-pager #挂载系统镜像 echo "/dev/cdrom /var/www/html iso9660 defaults 0 0" >> /etc/fstab systemctl daemon-reload mount -a if [ $? -eq 0 ];then echo "系统镜像挂载成功!" else echo "系统镜像挂载失败!" exit fi #优化默认配置文件 mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak systemctl restart httpd #关闭防火墙及SELinux iptables -F systemctl stop firewalld setenforce 0 #打印最终提示信息 echo "请在浏览器输入http://本机IP访问本地yum源!" EOF chmod +x local_yum_repos.sh ./local_yum_repos.sh

三、用Shell脚本配置本地yum源repo文件

vim yum_conf_repo.sh #!/bin/bash #作用:快速配置本地yum源repo文件 #作者:传棋(Jaking) #邮箱:Jaking@vip.163.com #日期:2026年4月10日 # 本地yum源地址 BASEURL="http://192.168.88.101" echo "===== 1. 备份并删除原有 repo 文件 =====" mkdir -p /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ &>/dev/null echo "===== 2. 生成本地 repo 文件 =====" cat > /etc/yum.repos.d/local.repo <<EOF [BaseOS] name=BaseOS baseurl=${BASEURL}/BaseOS/ enabled=1 gpgcheck=0 [AppStream] name=AppStream baseurl=${BASEURL}/AppStream/ enabled=1 gpgcheck=0 EOF echo "===== 3. 清理缓存并生成缓存 =====" dnf clean all dnf makecache echo "===== 4. 测试仓库 =====" dnf repolist echo "===== 完成 =====" chmod +x yum_conf_repo.sh ./yum_conf_repo.sh

四、不通外网的情况下安装软件

# 测试连通性,ping 4次 www.163.com ping -c 4 www.163.com # 进入yum仓库配置目录 cd /etc/yum.repos.d/ # 查看目录文件 ls # 编辑DNS配置文件 vim /etc/resolv.conf # 查看DNS配置文件内容 cat /etc/resolv.conf [root@server2 yum.repos.d]# cat /etc/resolv.conf # Generated by NetworkManager #nameserver 192.168.88.2 #nameserver 114.114.114.114 # 再次测试域名解析 ping -c 4 www.163.com # 将yum仓库文件移动到/tmp(可选操作) mv * /tmp # 查看目录 ls # 再次测试域名解析 ping -c 4 www.163.com # 卸载wget软件包 yum remove -y wget # 安装wget软件包 yum install -y wget # 查询wget版本信息 rpm -qa wget # 查看系统时间 date -R # 卸载httpd相关软件包 yum remove -y httpd # 安装httpd软件包 yum install -y httpd # 再次测试域名解析 ping www.163.com

本地file模式yum源

注意:这种模式只能解决本机的yum源问题!

# 编辑开机自动挂载配置文件 vim /etc/fstab # 查看 /etc/fstab 配置内容 cat /etc/fstab # /etc/fstab # Created by anaconda on Fri Jul 18 07:48:14 2025 # # Accessible filesystems, by reference, are maintained under '/dev/disk/'. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # # 加载 /etc/fstab 里所有挂载配置 mount -a # 查看磁盘挂载信息 df -h # 进入 yum 仓库配置目录 cd /etc/yum.repos.d # 查看当前所在路径 pwd # 编辑本地 yum 源配置文件 vim local.repo # 查看本地 yum 源配置文件内容 cat local.repo [BaseOS] name=BaseOS baseurl=file:///var/www/html/BaseOS/ enabled=1 gpgcheck=0 [AppStream] name=AppStream baseurl=file:///var/www/html/AppStream/ enabled=1 gpgcheck=0

整体流程回顾

前置准备

确保虚拟机/物理机已连接系统镜像,为本地yum源提供完整软件包支撑。

服务端搭建

使用一键脚本安装httpd服务,永久挂载系统镜像到网页目录,关闭防火墙与SELinux,将系统镜像发布为http内网yum仓库

客户端配置

通过脚本自动备份原有repo、生成新的本地源配置文件,指向内网yum服务端地址,重建缓存并生效。

离线验证

在完全不通外网的环境下,成功使用yum安装、卸载软件,证明本地yum源可用、稳定、高效。

关键技术要点总结

  1. 使用httpd共享系统镜像,实现内网http协议访问yum源。

  2. 通过/etc/fstab实现镜像永久挂载,避免重启失效。

  3. Shell脚本自动化部署,减少重复操作,提高部署一致性。

  4. 自定义.repo配置文件,区分BaseOSAppStream仓库,适配RHEL/CentOS Stream系统。

  5. 关闭防火墙、清空规则、关闭SELinux,保证内网访问畅通。

http://www.jsqmd.com/news/1179184/

相关文章:

  • 基于TLA2518与STM32的高精度多通道数据采集系统设计
  • Unity DOTS性能调优实战:从Burst编译到ECS架构的5个关键节点
  • 2026年7月最新盐城卡地亚官方售后客户服务热线与维修网点地址汇总 - 卡地亚服务中心
  • 工业信号干扰解决方案:FOD4216光耦与PIC18F4620抗噪设计
  • AD7175-8与MKV44F128VLH16的高性能信号采集方案
  • Ford-Fulkerson 算法 Python 实现:5步解决软考最大流量问题(附完整代码)
  • 卡地亚中国官方售后服务中心|官方地址及售后服务热线权威信息公示(2026年7月最新) - 卡地亚官方售后中心
  • 如何5分钟掌握百度网盘提取码智能查询:baidupankey终极指南
  • UE5增强输入系统实战:构建第三人称角色移动与摄像机控制
  • AD5593R与MK24FN1M0VDC12嵌入式信号处理方案详解
  • Nginx静态资源安全配置实战:5个关键检查点防范目录遍历与信息泄露
  • TLA2518与PIC18LF2455的ADC信号采集方案设计
  • AI教材写作工具实测:轻松搞定高校专业教材生成难题!
  • HsMod插件终极指南:55项功能让炉石传说体验全面升级
  • 2026不容错过!深度测评5款适配多学科的AI论文写作工具,初稿轻松搞定
  • 深度学习模型工作原理:从神经网络基础到Transformer架构详解
  • 状态图 vs 数据流图:面向对象分析中 2 种核心模型的 5 个关键差异与协同
  • 栈序列卡特兰数解析:5元素入栈序列的42种可能性的数学推导
  • PUBG罗技鼠标宏压枪脚本:从零掌握武器后坐力控制的终极指南
  • GitHub AI项目高效利用指南:从搜索评估到生产部署全流程
  • STM32F215ZG与AD7490高精度ADC接口设计与优化
  • STM32L151ZD与MCP3551高精度数据采集方案详解
  • Git 2.45.1 右键菜单修复:3种方案对比与一键注册表脚本
  • Unity异步编程实战:async/await性能优化与避坑指南
  • 安卓旧手机部署OpenList实操:内置存储挂载、文件上传与公网访问
  • UE5材质进阶:三种方法彻底解决Tiles纹理拉伸变形问题
  • NBM7100A与STM32F745VG延长不可充电电池寿命方案
  • 高级java每日一道面试题-2026年04月08日-实战篇[Docker]-如何查看容器内部的进程?
  • 数据库安全不是加把锁:呼吸式防护的6个实战切口
  • 2026年7月最新无锡积家官方售后客户服务热线与维修网点地址汇总 - 积家官方售后服务中心