Skip to content

CentOS 7离线环境FIO软件移植完整指南

概述

在离线环境中部署软件是运维工作中的常见场景。本文档详细介绍如何从在线CentOS 7服务器下载FIO(Flexible I/O Tester)及其依赖包,打包后移植到离线环境进行安装的完整流程。

核心原理

依赖打包 → 整体迁移 → 本地安装

这种方法的核心在于预先解决软件依赖关系,避免离线环境中的依赖缺失问题。通过yumdownloader工具递归下载所有依赖包,确保离线安装的完整性。

前提条件

系统要求

  • 源服务器:可访问互联网的CentOS 7服务器(x86_64架构)
  • 目标服务器:离线的CentOS 7服务器(x86_64架构)
  • 两台服务器的操作系统版本和架构必须完全一致

安装必要工具

bash
# 在源服务器上安装必要工具
sudo yum install epel-release yum-utils -y

工具说明

  • epel-release:企业版Linux额外包仓库,提供FIO等扩展软件
  • yum-utils:包含yumdownloader等实用工具
  • yumdownloader:用于下载RPM包及其依赖,不进行安装

阶段一:在源服务器(有网络)准备安装包

1. 安装工具

bash
sudo yum install epel-release yum-utils -y

说明:EPEL仓库提供FIO的安装源,yum-utils提供yumdownloader工具

2. 下载FIO及所有依赖

bash
mkdir fio_packages
cd fio_packages
yumdownloader --resolve fio

执行完成后,fio_packages目录下将包含fio及其所有依赖的.rpm文件。

3. 打包压缩

bash
cd ..
tar -czvf fio_packages.tar.gz fio_packages/

这将生成fio_packages.tar.gz压缩包文件。

阶段二:传输压缩包

使用scp传输fio_packages.tar.gz到目标服务器:

bash
scp fio_packages.tar.gz root@192.168.1.100:/tmp/

注意:请将root@192.168.1.100/tmp/替换为实际信息。

阶段三:在目标服务器(离线)进行安装

1. 解压文件

bash
cd /tmp
tar -xzvf fio_packages.tar.gz

2. 本地安装

bash
cd fio_packages/
sudo yum localinstall *.rpm -y

原理说明yum localinstall命令会自动解决本地包之间的依赖顺序,比直接使用rpm -ivh *.rpm更为可靠。

3. 验证安装

bash
fio --version

返回版本信息(如fio-3.7)表示安装成功。

参数详解

命令参数说明
yumdownloader--resolve下载指定包及其所有依赖
tar-czvf创建gzip压缩包(c-创建,z-压缩,v-显示过程,f-指定文件)
tar-xzvf解压gzip压缩包(x-解压,z-解压gzip格式)
yumlocalinstall从本地文件安装RPM包并处理依赖关系

扩展应用

离线安装其他软件

此方法适用于其他需要离线安装的软件包,只需将fio替换为目标软件包名称:

bash
# 示例:离线安装htop
yumdownloader --resolve htop
tar -czvf htop_packages.tar.gz htop_packages/
# [传输步骤]
tar -xzvf htop_packages.tar.gz
cd htop_packages/
yum localinstall *.rpm -y

批量脚本化

为提高效率,可将此流程封装为脚本:

bash
#!/bin/bash
# offline-package.sh - 离线包准备脚本

PACKAGE_NAME=$1
if [ -z "$PACKAGE_NAME" ]; then
    echo "用法: $0 <包名>"
    exit 1
fi

mkdir -p ${PACKAGE_NAME}_packages
cd ${PACKAGE_NAME}_packages
yumdownloader --resolve $PACKAGE_NAME
cd ..
tar -czvf ${PACKAGE_NAME}_packages.tar.gz ${PACKAGE_NAME}_packages/

echo "离线包 ${PACKAGE_NAME}_packages.tar.gz 已准备完成"

注意事项

⚠️ 安全提醒

  • 传输文件时使用安全协议(scp/sftp)
  • 安装前检查RPM包的完整性,可使用rpm -K命令验证签名

⚠️ 兼容性注意

  • 确保源服务器和目标服务器的系统版本完全一致
  • 不同架构的RPM包不兼容(如x86_64与aarch64)

⚠️ 版本控制

  • 离线环境升级需要重复此流程
  • 建议建立内部软件仓库,统一管理版本和依赖

总结

通过预先解决依赖关系并打包,FIO的离线安装变得简单可靠。此方法可扩展到其他软件包,形成标准化的离线软件部署流程,适用于生产环境、隔离网络等多种场景。

用心记录,持续学习 | CNB