尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
yum 3.4.3 离线部署实战:仅下载 10 个依赖包的 3 步离线安装方案
yum 3.4.3 离线部署实战仅下载 10 个依赖包的 3 步离线安装方案在企业级Linux运维中离线环境下的软件部署一直是系统管理员面临的棘手问题。特别是在生产服务器、内网环境或安全隔离区域网络访问受限的情况下如何高效完成软件安装成为关键挑战。本文将深入探讨yum 3.4.3版本中--downloadonly选项的高级应用提供一套完整的离线部署解决方案。1. 离线部署的核心原理与准备工作yum作为RPM包管理器其离线部署能力主要依赖于三个核心功能--downloadonly下载选项、localinstall本地安装命令以及createrepo仓库创建工具。这三者协同工作构成了离线部署的技术基础。为什么选择yum而非直接使用rpm关键在于依赖关系自动处理。直接使用rpm安装时管理员需要手动解决所有依赖包这在复杂软件环境中几乎不可行。而yum的localinstall能够自动解析本地仓库中的依赖关系大幅降低部署复杂度。准备工作中需要特别注意确保在线环境与离线环境的操作系统版本完全一致确认yum版本为3.4.3可通过yum --version查看准备足够的存储空间建议预留至少5GB用于存放下载的rpm包提示使用df -h命令检查磁盘空间特别是/var目录的可用空间因为yum默认将包下载到/var/cache/yum。2. 三步骤离线部署方案详解2.1 精准下载依赖包在联网机器上执行下载操作时推荐使用以下优化命令mkdir -p /opt/offline_packages yum install --downloadonly --downloaddir/opt/offline_packages \ --installroot/tmp/empty_root \ --releasever$(rpm -q --qf %{VERSION} $(rpm -q --whatprovides redhat-release)) \ gcc-c make cmake httpd mariadb-server postgresql \ python3-devel openssl-devel zlib-devel参数解析--downloaddir指定自定义下载目录避免污染默认缓存--installroot使用空目录防止意外安装--releasever精确匹配当前系统版本常见问题处理若出现没有可用软件包错误尝试先运行yum clean all yum makecache对于无法解析主机错误检查/etc/yum.repos.d/下的仓库配置2.2 创建本地yum仓库将下载的rpm包传输到目标机器后需要建立本地仓库索引# 安装createrepo工具在线环境 yum install -y createrepo # 在离线环境中创建仓库元数据 cd /opt/offline_packages createrepo --database --update .仓库目录结构应如下/opt/offline_packages/ ├── repodata/ │ ├── filelists.xml.gz │ ├── other.xml.gz │ └── primary.xml.gz └── *.rpm高级技巧使用--workers4参数加速大型仓库的元数据生成添加--checksumsha256增强完整性校验对于多架构环境使用--repomyrepo创建独立仓库2.3 离线安装与验证配置目标机器的yum源指向本地仓库cat /etc/yum.repos.d/local.repo EOF [local] nameLocal Repository baseurlfile:///opt/offline_packages enabled1 gpgcheck0 EOF安装软件包并验证yum --disablerepo\* --enablerepolocal install gcc-c rpm -qa | grep gcc-c关键参数说明--disablerepo\*禁用所有远程仓库--enablerepolocal仅启用本地仓库--nogpgcheck如需跳过GPG验证仅限可信环境3. 实战10个核心依赖包离线部署以下是经过验证的10个常用软件包及其依赖关系主包名称典型依赖数总下载大小关键依赖项gcc-c5-8~50MBlibstdc-devel, glibc-develhttpd4-6~3MBapr, apr-utilpostgresql10-15~30MBlibicu, libxsltpython3-devel3-5~15MBpython3-libs, tkinteropenssl-devel2-3~5MBopenssl-libs, zlibnginx3-5~2MBpcre, gddocker-ce8-12~80MBcontainerd, libseccompnodejs6-10~25MBnpm, v8-enginemysql-server12-18~150MBprotobuf, libaioansible5-8~10MBsshpass, paramiko下载这些包的完整命令yum install --downloadonly --downloaddir/opt/offline_packages \ gcc-c httpd postgresql python3-devel openssl-devel \ nginx docker-ce nodejs mysql-server ansible4. 高级技巧与故障排除依赖树分析工具repoquery --requires --resolve package空间优化策略使用--excludekernel*跳过内核相关包添加--archlistx86_64,noarch限定架构通过yumdownloader替代完整安装命令下载特定包常见错误解决方案依赖缺失错误yum deplist package | grep provider版本冲突处理yum versionlock exclude package仓库缓存更新yum clean all yum makecache性能优化建议并行下载yum-plugin-fastestmirror增量更新createrepo --update仓库签名gpg --gen-keycreaterepo --gpgkey对于大规模部署可考虑将本地仓库配置为网络共享NFS/HTTP便于多台机器访问。在企业环境中建议结合SaltStack或Ansible实现自动化批量部署。
RELATED

相关推荐

魔兽争霸3终极优化指南:Warcraft Helper插件让经典游戏焕发新生

魔兽争霸3终极优化指南:Warcraft Helper插件让经典游戏焕发新生

魔兽争霸3终极优化指南:Warcraft Helper插件让经典游戏焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代Win…

📅 2026/9/15 6:46:27
从0到1理解Jacobin JVM:Go语言如何实现Java核心类库?

从0到1理解Jacobin JVM:Go语言如何实现Java核心类库?

从0到1理解Jacobin JVM:Go语言如何实现Java核心类库? 【免费下载链接】jacobin A more than minimal JVM written in Go and capable of running Java 21 classes. 项目地址: https://gitcode.com/gh_mirrors/ja/jacobin 你是否想过用Go语言构建一…

📅 2026/7/27 8:46:32
如何用gh_mirrors/notes46/notes提升生成模型性能:10个实用技巧

如何用gh_mirrors/notes46/notes提升生成模型性能:10个实用技巧

如何用gh_mirrors/notes46/notes提升生成模型性能:10个实用技巧 【免费下载链接】notes Course notes 项目地址: https://gitcode.com/gh_mirrors/notes46/notes 在深度学习领域,生成模型的性能优化一直是研究者和开发者关注的核心问题。gh_mirro…

📅 2026/9/9 20:26:41
MORE NEWS

更多资讯

📰

远程会议效率提升指南:从会前准备到会后纪实的完整最佳实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

高校学生信息管理系统毕设实战:Spring Boot+Vue全栈开发与部署指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

从TCP/IP数据包到三层架构:Windows+VMware网络实验复盘

最开始我其实只是想搞明白一个问题:在Windows里打开一个网页,屏幕上那几行字,到底是怎么从我电脑的网卡口跑出去,又怎么从服务器上跑回来的。结果这一查不要紧,从TCP/IP协议栈一路看到了交换机和路由器,最后…

📰

JavaScript内存优化实战:定位GC瓶颈与六大泄露场景

1. 这不是“理论课”,是前端工程师每天都在面对的真实战场JavaScript 内存问题从来不是教科书里那个安静的“堆栈模型图”。它是在你刷新页面后 Chrome 任务管理器里突然跳到 1.2GB 的 Edge 进程;是你上线新功能后用户投诉“微信打开就卡死、闪退”&…

📰

彻底清理软件卸载残留:注册表与AppData实操指南

卸载一个软件只需要几秒,可你真的把它“送走”了吗?我在实际维护电脑的过程中见过太多这种情况:控制面板里明明显示“已成功卸载”,但 C 盘空间依旧莫名其妙地缩水,开机速度没有改善,过几天还弹出“Windows…

📰

树莓派GPIO编程:wiringPi库实战指南

1. 项目背景与wiringPi库简介最近在树莓派上折腾GPIO控制时,发现wiringPi这个库确实是个好东西。作为一款用C语言编写的GPIO访问库,它让硬件操作变得像写普通应用程序一样简单。记得第一次用wiringPi点亮LED时,那种"原来硬件编程可以这么…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬