背景介绍
在企业环境中,经常会遇到部分服务器处于内网或隔离网络环境,无法直接访问外部网络的情况。当这些服务器需要使用特定软件工具时,就需要通过离线安装的方式来部署。本文将详细介绍如何在 CentOS 7 系统中离线安装 PostgreSQL 12 客户端工具,特别是 pg_dump 工具。
环境要求
- 操作系统:CentOS 7
- PostgreSQL 版本:12
- 一台可访问外网的 CentOS 7 服务器(用于下载安装包)
- 一台无法访问外网的 CentOS 7 服务器(目标安装服务器)
操作思路
整个过程分为两个阶段:
- 在联网服务器上下载所需的 RPM 包
- 将下载的包传输到目标服务器并进行安装
详细操作步骤
第一阶段:在联网服务器上准备安装包
1. 添加 PostgreSQL 12 官方仓库
首先需要添加 PostgreSQL 官方 YUM 仓库,以便能够下载正确的 RPM 包:
# 安装 PostgreSQL 12 官方仓库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2. 下载 PostgreSQL 12 客户端 RPM 包
使用 yum 的 --downloadonly 选项只下载不安装相关包:
# 仅下载 PostgreSQL 12 客户端及相关依赖,不安装
yum install --downloadonly --downloaddir=/tmp/pg_client postgresql12这个命令会自动解析并下载 postgresql12 包及其所有依赖项到指定目录。
3. 打包所有下载的 RPM 文件
为了方便传输,将所有下载的 RPM 文件打包成一个压缩文件:
# 创建压缩包便于传输
tar -czf pg_client.tar.gz /tmp/pg_client/*.rpm第二阶段:在目标服务器上安装客户端
1. 传输文件
将打包好的 pg_client.tar.gz 文件通过安全的方式(如 SCP、USB 设备等)传输到目标服务器。
2. 解压并安装
在目标服务器上执行以下操作:
# 解压文件
tar -xzf pg_client.tar.gz -C /tmp/
# 安装 PostgreSQL 12 客户端
yum localinstall -y /tmp/pg_client/*.rpm使用 yum localinstall 命令可以直接从本地文件安装 RPM 包,并自动处理依赖关系。
3. 验证安装
安装完成后,验证 pg_dump 是否正确安装:
# 检查 pg_dump 版本
pg_dump --version如果显示类似 pg_dump (PostgreSQL) 12.x 的输出,则表示安装成功。
注意事项
- 确保两台服务器的架构一致(如都是 x86_64)
- 如果目标服务器上有其他版本的 PostgreSQL,需要注意版本冲突问题
- 建议在传输前校验文件完整性,确保安装包未损坏
- 如需其他 PostgreSQL 工具,可以在下载时指定相应的包名
总结
通过上述步骤,我们成功实现了在无外网连接的 CentOS 7 服务器上安装 PostgreSQL 12 客户端。这种方法不仅适用于 PostgreSQL,也可以推广到其他需要离线安装的软件包。掌握这种离线安装技能对于系统管理员和 DevOps 工程师来说是非常重要的。