news 2026/5/28 14:11:08

内网开发福音:保姆级教程,用一台能上网的Ubuntu搞定另一台机器的PostgreSQL 14离线安装

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
内网开发福音:保姆级教程,用一台能上网的Ubuntu搞定另一台机器的PostgreSQL 14离线安装

内网开发福音:保姆级教程,用一台能上网的Ubuntu搞定另一台机器的PostgreSQL 14离线安装

在企业的开发和生产环境中,内网隔离是常见的安全策略。但这也带来了一个现实问题:如何在内网机器上安装像PostgreSQL这样的关键数据库服务?本文将介绍一种高效的双机协作方案,利用一台能上网的Ubuntu机器为内网环境准备完整的PostgreSQL 14离线安装包。

1. 准备工作与环境配置

1.1 确认系统版本

首先需要确保两台机器使用相同版本的Ubuntu系统。可以通过以下命令检查:

lsb_release -a

输出示例:

No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal

关键点

  • 确保两台机器的Codename一致(如都是focal)
  • 推荐使用LTS版本(20.04或22.04)

1.2 安装必要工具

在上网机器上安装后续操作所需的工具:

sudo apt update sudo apt install -y apt-rdepends wget

apt-rdepends是分析依赖关系的关键工具,而wget用于下载PG仓库密钥。

2. 构建完整的离线安装包

2.1 添加PostgreSQL官方仓库

在上网机器上执行以下命令添加PG官方仓库:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt update

2.2 确定要安装的版本

检查可用的PostgreSQL版本:

apt-cache show postgresql | grep Version

典型输出:

Version: 14+243.pgdg20.04+1 Version: 12+214ubuntu0.1 Version: 12+214

2.3 分析依赖关系

使用apt-rdepends分析完整依赖树:

apt-rdepends postgresql-14 > dependencies.txt

关键依赖通常包括:

  • postgresql-client-14
  • postgresql-common
  • libpq5
  • pgdg-keyring

2.4 下载所有依赖包

创建下载脚本download.sh

#!/bin/bash packages=( postgresql-14 postgresql-client-14 postgresql-common postgresql-client-common libpq5 pgdg-keyring ) for pkg in "${packages[@]}"; do apt download $pkg done

运行脚本后,当前目录会生成所有需要的.deb文件。

3. 离线安装与问题排查

3.1 传输文件到内网机器

将下载的.deb文件打包传输:

tar czvf pg14-offline.tar.gz *.deb

然后通过U盘或内部文件共享服务将压缩包传输到内网机器。

3.2 安装顺序与依赖处理

在内网机器上按特定顺序安装:

  1. 先安装keyring:

    sudo dpkg -i pgdg-keyring_*.deb
  2. 安装common包:

    sudo dpkg -i postgresql-client-common_*.deb sudo dpkg -i postgresql-common_*.deb
  3. 处理依赖:

    sudo apt --fix-broken install
  4. 安装主程序:

    sudo dpkg -i postgresql-client-14_*.deb sudo dpkg -i libpq5_*.deb sudo dpkg -i postgresql-14_*.deb

3.3 常见问题解决

问题1:缺少标准库依赖

解决方案:

sudo apt --fix-broken install

问题2:locale配置警告

解决方法:

sudo locale-gen en_US.UTF-8

4. 验证与优化配置

4.1 验证安装

检查服务状态:

sudo systemctl status postgresql

连接测试:

sudo -u postgres psql -c "SELECT version();"

4.2 基础安全配置

修改postgres用户密码:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'your_password';"

调整监听地址:

sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /etc/postgresql/14/main/postgresql.conf

4.3 性能调优建议

根据内存调整配置:

sudo nano /etc/postgresql/14/main/postgresql.conf

推荐参数(4GB内存机器):

shared_buffers = 1GB effective_cache_size = 3GB maintenance_work_mem = 256MB

5. 高级技巧与自动化方案

5.1 一键下载脚本

创建完整的下载脚本download_all.sh

#!/bin/bash set -e # 获取所有依赖 deps=$(apt-rdepends postgresql-14 | grep -v "^ " | sort | uniq) # 下载所有包 for dep in $deps; do apt download $dep 2>/dev/null || echo "Skipping $dep (not found)" done

5.2 制作本地仓库

更专业的做法是创建本地APT仓库:

sudo apt install -y dpkg-dev mkdir pg14-repo mv *.deb pg14-repo cd pg14-repo dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

在内网机器上添加源:

echo "deb [trusted=yes] file:/path/to/pg14-repo ./" | sudo tee /etc/apt/sources.list.d/pg14-local.list sudo apt update

5.3 容器化方案

对于需要频繁部署的场景,考虑使用Docker:

# 在上网机器上拉取镜像 docker pull postgres:14 # 保存镜像 docker save postgres:14 -o postgres14.tar # 在内网机器加载 docker load -i postgres14.tar
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 14:08:02

跨越平台壁垒:Electron音乐软件的云原生部署新范式

跨越平台壁垒:Electron音乐软件的云原生部署新范式 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 引言:传统部署的困境与容器化破局 你是否曾为在不同操…

作者头像 李华
网站建设 2026/5/28 14:04:05

正版复刻 1.03H,《剑与翼奇迹》手游重铸黄金奇迹时代

《剑与翼》又名《剑与翼-奇迹MU》是由英杰互娱官网上线正版手游,由英杰互娱官网负责后续游戏资讯、攻略、礼包发放。游戏高度还原端游体验,凭借公平的运营模式与经典玩法,深受怀旧玩家喜爱,曾登上 18183、英杰互娱、好游快爆、Tap…

作者头像 李华
网站建设 2026/5/28 14:03:11

从10人到1000人,一套视频会议方案够用吗?实测4款

“小王,下午三点开个会,通知所有人。” —— 这话说完,真正的噩梦才开始。找了半天,发现公司用的免费会议软件最多只能100人,而今天偏偏要跟20个客户和30个内部同事一起开,人满了进不来;要么是某…

作者头像 李华
网站建设 2026/5/28 14:03:09

CI/CD 与 DevOps 三

应用实践中:部署到开发/测试环境后 → 加入跑接口自动化环节1. 实际流水线plaintext代码提交↓ 构建 build↓ 单元测试(可选)↓ 打包镜像↓ 【部署到开发环境】 先部署↓ 【接口自动化测试】 在这里跑↓ 测试通过 → 继续部署测试/预发/生产2…

作者头像 李华
网站建设 2026/5/28 14:00:08

热江绿色版新手攻略:从零起步,探索纯粹武侠江湖

《热江绿色版》作为口碑出众的复古武侠正版复刻手游,以绿色公平、零氪金碾压、自由打宝交易为核心特色,彻底剔除传统武侠手游的VIP特权、付费属性商城、数值碾压等氪金套路,百分百还原经典热血江湖的纯粹武侠玩法。很多新手玩家初次入坑&…

作者头像 李华