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

发布时间:2026/7/12 19:04:58
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实现自动化批量部署。