yum 3.4.3 离线部署实战:仅下载 10 个依赖包的 3 步离线安装方案

发布时间:2026/9/27 10:03:54

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实现自动化批量部署。

相关新闻

SmartPack-Kernel-Manager未来路线图:5大令人期待的功能与改进

SmartPack-Kernel-Manager未来路线图:5大令人期待的功能与改进

2026/9/27 10:01:47

SmartPack-Kernel-Manager未来路线图:5大令人期待的功能与改进 【免费下载链接】SmartPack-Kernel-Manager Source code of SmartPack-Kernel Manager, the Ultimate Tool to Manage your Kernel 项目地址: https://gitcode.com/gh_mirrors/smar/SmartPack-Kernel…

CCManager终极指南:一站式管理Claude Code与多AI助手会话的革命性工具

CCManager终极指南:一站式管理Claude Code与多AI助手会话的革命性工具

2026/8/23 0:30:19

CCManager终极指南:一站式管理Claude Code与多AI助手会话的革命性工具 【免费下载链接】ccmanager Coding Agent Session Manager for Claude Code / Gemini CLI / Codex CLI / Cursor Agent / Copilot CLI / Cline CLI / OpenCode / Kimi CLI 项目地址: https://…

【电路笔记 信号】传输线方程:从RLGC推导传输线特性阻抗

【电路笔记 信号】传输线方程:从RLGC推导传输线特性阻抗

2026/9/4 23:25:50

传输线频域常微分方程组: dV(x)dx−Z⋅I(x)— (式1)\frac{dV(x)}{dx} -Z \cdot I(x) \quad \text{--- (式1)}dxdV(x)​−Z⋅I(x)— (式1) dI(x)dx−Y⋅V(x)— (式2)\frac{dI(x)}{dx} -Y \cdot V(x) \quad \text{--- (式2)}dxdI(x)​−Y⋅V(x)— (式2)其中&#xf…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/26 19:14:12

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

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

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/27 1:30:37

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/27 1:30:35

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/27 1:30:34

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

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/26 16:36:51

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/26 13:57:22

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…