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

内网环境下离线安装软件的完美解决方案(以MySQL为例)

文章目录

  • 前言
  • 一、内网环境软件安装的困境与解决方案概述
    • 1.1 问题背景
    • 1.2 常用解决方案
  • 二、RPM包离线安装方法(以MySQL为例)
    • 2.1 准备工作
      • 2.1.1 确认系统版本和架构
      • 2.1.2 准备一台联网的同版本系统机器
    • 2.2 在联网机器上下载MySQL及依赖
      • 2.2.1 安装必要工具
      • 2.2.2 下载MySQL及所有依赖包
    • 2.3 传输RPM包到内网机器
    • 2.4 在内网机器上安装MySQL
      • 2.4.1 安装本地RPM包
      • 2.4.2 初始化MySQL
      • 2.4.3 修改mysql配置文件(降低密码复杂性)
      • 2.4.4 修改简单密码(根据需求)
      • 2.4.5 启动并设置开机自启
    • 2.5 RPM包离线安装通用流程
      • 2.5.1 联网机器操作步骤
        • 2.5.1.1 确认目标软件名称
        • 2.5.1.2 下载软件及所有依赖
        • 2.5.1.3 打包并传输
      • 2.5.2 内网机器操作步骤
  • 三、本地YUM仓库配置方法
    • 3.1 准备工作
    • 3.2 安装createrepo工具并创建仓库
    • 3.3 配置Apache服务
    • 3.4 创建仓库目录并复制RPM包
    • 3.5 配置客户端yum源
    • 3.6 验证本地仓库
    • 3.7 维护本地仓库
  • 四、其他离线安装方法
    • 4.1 使用ISO镜像作为本地源
    • 4.2 源码编译安装
  • 总结
    • 各种方法的优缺点比较
    • 适用场景建议

前言

在企业级内网环境中,服务器通常出于安全考虑会限制互联网访问,这给软件安装带来了不小的挑战。特别是当我们需要安装像MySQL这样依赖众多的软件时,无法直接使用yum命令从官方仓库获取安装包和依赖,往往会让运维工作变得十分棘手。

本文将以MySQL安装为例,详细介绍几种在内网环境下实现软件离线安装的方法,包括RPM包离线安装、本地YUM仓库配置等,并总结通用的操作流程,帮助大家轻松应对内网环境下的软件安装难题。

一、内网环境软件安装的困境与解决方案概述

1.1 问题背景

在无法连接互联网的内网环境中,传统的yum安装方式会失效,主要面临以下问题:

  • 无法直接从远程仓库获取安装包
  • 软件依赖关系复杂,手动解决难度大
  • 编译安装耗时且容易出错
  • 多台机器重复安装时效率低下

1.2 常用解决方案

针对内网环境的特点,常用的解决方案有以下几种:

  1. RPM包离线安装:在联网机器下载所需包及依赖,拷贝至内网安装\
  2. 本地YUM仓库:在内网搭建本地仓库,集中管理安装包
  3. ISO镜像源:利用系统ISO镜像作为基础软件源
  4. 源码编译:适用于特殊需求或无预编译包的情况

二、RPM包离线安装方法(以MySQL为例)

这种方法适用于安装单个或少量软件,步骤简单直接,无需复杂配置。

2.1 准备工作

2.1.1 确认系统版本和架构

在内网目标机器上执行以下命令,记录系统版本和架构信息:

# 查看系统版本
cat /etc/redhat-release    # 示例输出:CentOS Linux
# 查看系统架构
uname -m     # 示例输出:x86_64(主流架构,32位为i686,需对应下载)

2.1.2 准备一台联网的同版本系统机器

确保该机器与内网目标机器具有相同的操作系统版本和架构,以保证下载的RPM包兼容。

2.2 在联网机器上下载MySQL及依赖

2.2.1 安装必要工具

# 安装yum-utils,提供yumdownloader工具
sudo yum install -y yum-utils

2.2.2 下载MySQL及所有依赖包

# 下载 MySQL 5.7 的 YUM 仓库配置包
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装 repo 配置包(让 yum 能识别 MySQL 5.7 仓库)
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

默认情况下,MySQL YUM 源可能优先启用 8.0 版本,需手动切换到 5.7
编辑仓库配置文件,启用 5.7、禁用 8.0

# 启用MySQL 5.7仓库(如需其他版本可修改)
sudo vim /etc/yum.repos.d/mysql-community.repo
找到 [mysql57-community] 段落:将 enabled=0 改为 enabled=1
找到 [mysql80-community] 段落:将 enabled=1 改为 enabled=0
# 下载MySQL服务器及所有依赖包(不安装)
mkdir -p /tmp/mysql5720_rpms  # 目录可自定义
# 用 yumdownloader 下载(--resolve 自动下载依赖,--destdir 指定保存目录)
yumdownloader --resolve --destdir=/tmp/mysql5720_rpms mysql-community-server-5.7.20

2.3 传输RPM包到内网机器

将下载好的所有RPM包打包并传输到内网机器:

# 在联网机器上打包
cd /tmp
tar -czvf mysql_rpms.tar.gz mysql_rpms/# 通过U盘、内网传输工具等方式将mysql_rpms.tar.gz拷贝到内网机器

2.4 在内网机器上安装MySQL

2.4.1 安装本地RPM包

# 解压RPM包
tar -xzvf mysql_rpms.tar.gz
# 切换到存放所有 MySQL 及依赖 RPM 包的文件夹
cd mysql5720_rpms# yum 会自动识别当前目录下所有 .rpm 文件,并处理依赖关系(若本地包已包含所有依赖,会直接安装;若缺依赖会提示)
yum localinstall -y *.rpm

2.4.2 初始化MySQL

# 启动MySQL服务
sudo systemctl start mysqld# 修改初始密码
mysql -uroot -p$(grep "password" /var/log/mysqld.log | awk '{print $NF}') --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"

2.4.3 修改mysql配置文件(降低密码复杂性)

# 修改配置文件
vim /etc/my.cnf
[mysqld]
# 其他原有配置(如datadir、socket等)保持不变,新增以下两行
validate_password_policy=LOW    # 降低强度策略(仅检查长度)
validate_password_length=6      # 最小密码长度设为6位
# 修改错误日志名称(指定日志文件路径,路径可自定义,建议放/var/log下,默认已开启)
log_error = /var/log/mysql/mysql_error.log
# 开启慢查询日志
slow_query_log = ON               # 开启慢查询日志
slow_query_log_file = /var/log/mysql/mysql_slow.log  # 日志文件路径
long_query_time = 2               # 超过多少秒认为是慢查询(默认 10s)
log_queries_not_using_indexes = ON # 可选:记录未使用索引的查询
# 创建日志目录
sudo mkdir -p /var/log/mysql# 设置目录所有者为mysql用户
sudo chown -R mysql:mysql /var/log/mysql# 重启mysqld
systemctl restart mysqld

2.4.4 修改简单密码(根据需求)

mysql -uroot -pAdmin@123 -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';"# 赋权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';FLUSH PRIVILEGES;

2.4.5 启动并设置开机自启

# 设置开机自启
sudo systemctl enable mysqld# 查看服务状态
sudo systemctl status mysqld

2.5 RPM包离线安装通用流程

上述MySQL安装方法可以推广到其他软件,以下是通用流程:

2.5.1 联网机器操作步骤

2.5.1.1 确认目标软件名称

明确需要安装的软件包名称,例如httpd、nginx等。

2.5.1.2 下载软件及所有依赖
# 安装yum-utils,提供yumdownloader工具
sudo yum install -y yum-utils# 创建存放目录
mkdir -p /tmp/offline_pkgs
cd /tmp/offline_pkgs# 下载软件及依赖(以httpd为例)
sudo yumdownloader --resolve --destdir=/tmp/offline_pkgs httpd
2.5.1.3 打包并传输
# 打包
tar -czvf offline_pkgs.tar.gz offline_pkgs/# 传输到内网机器

2.5.2 内网机器操作步骤

# 解压
tar -xzvf offline_pkgs.tar.gz
cd offline_pkgs# 使用yum localinstall(推荐,处理依赖更智能)
sudo yum localinstall -y *.rpm

三、本地YUM仓库配置方法

对于需要在多台内网机器上安装软件的场景,配置本地YUM仓库是更高效的方案。

3.1 准备工作

  • 一台作为仓库服务器的内网机器(建议配置固定IP)
  • 关闭防火墙和增强功能(或者开放端口)
  • 已下载好的各类软件RPM包

3.2 安装createrepo工具并创建仓库

# 如果仓库服务器可以联网,直接安装
sudo yum install -y createrepo httpd# 如果仓库服务器也无法联网,需先离线安装createrepo和httpd

3.3 配置Apache服务

# 启动Apache服务
sudo systemctl start httpd
sudo systemctl enable httpd

3.4 创建仓库目录并复制RPM包

# 在仓库服务器上创建目录
sudo mkdir -p /var/www/html/yumrepo/{Packages,repodata}# 将所有RPM包复制到Packages目录
sudo cp /path/to/downloaded/rpms/* /var/www/html/yumrepo/Packages/# 创建仓库索引
sudo createrepo /var/www/html/yumrepo/

在这里插入图片描述

3.5 配置客户端yum源

在需要安装软件的内网机器上,创建repo文件:

sudo vi /etc/yum.repos.d/local.repo

添加以下内容:

[local-repo]
name=Local YUM Repository
baseurl=http://仓库服务器IP/yumrepo/
enabled=1
gpgcheck=0

在这里插入图片描述

3.6 验证本地仓库

# 清除yum缓存
sudo yum clean all
sudo yum makecache# 列出可用仓库
yum repolist# 测试安装
sudo yum install -y mysql-community-server

在这里插入图片描述
在这里插入图片描述

3.7 维护本地仓库

当有新的RPM包添加到仓库时,需要更新仓库索引:

sudo createrepo --update /var/www/html/yumrepo/

四、其他离线安装方法

4.1 使用ISO镜像作为本地源

适用于需要安装系统自带软件的场景:

# 挂载ISO镜像
sudo mount -o loop /path/to/CentOS-7-x86_64-DVD-2009.iso /mnt
# 例如
# 直接挂载光盘设备(虚拟机光驱)
sudo mount /dev/cdrom /mnt# 创建repo文件
sudo vi /etc/yum.repos.d/local.repo

添加以下内容:

[local]				#仓库类别
name=local			#仓库名称
baseurl=file:///mnt	#指定URL 访问路径为光盘挂载目录
enabled=1			#开启此yum源,此为默认项,可省略
gpgcheck=0			#不验证软件包的签名#删除yum缓存并更新
yum clean all && yum makecache

如果需要永久挂载,可以将挂载信息添加到/etc/fstab文件中,例如:
对于 ISO 文件:

/path/to/CentOS-7-x86_64-DVD-2009.iso /mnt iso9660 loop 0 0

对于物理光盘:

dev/cdrom /mnt iso9660 defaults 0 0

4.2 源码编译安装

当没有合适的RPM包时,可以使用源码编译:

# 解压源码包
tar -zxvf software.tar.gz
cd software# 配置
./configure --prefix=/usr/local/software# 编译
make# 安装
make install

总结

各种方法的优缺点比较

方法优点缺点
RPM包离线安装操作简单,无需配置依赖处理复杂,不适合多机环境
本地YUM仓库依赖自动处理,适合多机环境需额外服务器,配置稍复杂
ISO镜像源系统软件安装方便,官方认证软件版本可能较旧,种类有限
源码编译可定制性强,版本灵活编译耗时,依赖需手动解决

适用场景建议

  • 单台机器安装少量软件:优先选择RPM包离线安装
  • 多台机器需要安装多种软件:推荐配置本地YUM仓库
  • 需要安装系统自带基础软件:可考虑ISO镜像源
  • 特殊版本需求或无预编译包:只能选择源码编译

通过本文介绍的方法,相信大家能够轻松应对内网环境下的软件安装挑战。选择适合自己场景的方法,可以极大提高工作效率,减少不必要的麻烦。在实际操作中,还需要根据具体环境和需求进行灵活调整,不断积累经验,才能更好地解决内网环境下的各种技术难题。

http://www.dtcms.com/a/435066.html

相关文章:

  • 构造函数和初始化列表的关系
  • 济南网站优化建设局网站打不开
  • LabVIEW 系统稳定性计算
  • Rocky Linux 8 安装与配置 TigerVNC 服务完整操作文档
  • Testify Go测试工具包入门教程
  • 南阳网站建设xihewh成都网站建设公司有哪几家
  • **标题:发散创新:探索AR开发框架的核心技术**随着增强现实(AR)技术的飞速发展,AR开发框架成为了开发者们关注的焦
  • 网站推广的优势logo制作免费版
  • 汕头网站建设制作报价网片是干什么用的
  • 江西省住房和城乡建设厅的网站网站设计权限
  • 【人工智能通识专栏】第三十三讲:知识库的构建与应用
  • 、@RequestParam 取出文件项
  • llms.txt:为大模型打造的“网站说明书”
  • 浔川社团再创佳绩
  • wordpress js版本号郑州官网网站优化公司
  • 藏语自然语言处理入门 - 3 找关键词
  • TDengine 时序函数 SAMPLE 用户手册
  • 【动态规划DP:纸币硬币专题】P2840 纸币问题 2
  • wap网站分享到微信屏蔽 wordpress 插件下载
  • 网站com域名上不去cn能网址之家哪个好
  • Python基础入门例程79-NP79 字母转数字
  • 阿里滑块 最新版 分析
  • 独立开发者日常:宝塔面板使用教程
  • Redis面试题及详细答案100道(61-70) --- 性能优化篇
  • 网站快速收录土巴兔装修公司
  • 自助建网站软件平台中国交通建设监理协会网站打不开
  • 上海网站平台建设整站优化cms
  • .NET WPF 数据编辑器集合提供列表框控件
  • Python系统设计选题-49
  • 【开题答辩全过程】以 vue电影购票网站为例,包含答辩的问题和答案