Ubuntu 24.04 离线安装postgresql-16+postgis扩展

准备

需要准备一台能联网的相同配置的Ubuntu 24.04 机器

方法一:postgresql-16源码编译

1. 

PostgreSQL源码可以从官网下载,下载地址:PostgreSQL: File Browser

2. 准备编译环境,根据官网的介绍(PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code):

    # 安装编译环境(期间会选择时区,亚洲输入6,上海输入70)
    sudo apt update
    sudo apt install make gcc tar pkg-config libicu-dev libreadline-dev zlib1g-dev
    # 解压
    tar -zxf postgresql-16.9.tar.gz
    # 切换目录
    cd postgresql-16.9

这里环境的按照一定要按照./configure提示来安装,缺少哪个就安装哪个  

    # 配置:--prefix表示存放编译后的文件目录
    sudo ./configure --prefix=/opt/postgresql-16.9
    # 编译
    sudo make
    # 安装
    sudo make install

 执行完成之后,把这整个目录打包一下,以后就可以把它直接发到服务器上去部署了:tar -zcf postgresql-16.9-bin.tar.gz -C /opt .

然后在没网的服务器进行部署:

    # 解压到一个目录,比如我这里是/opt
    sudo tar -zxf postgresql-16.9-bin.tar.gz -C /opt
    # 创建数据目录
    sudo mkdir -p /opt/postgresql-16.9/data /opt/postgresql-16.9/logs
    # 创建用户(输入密码后一路回车)
    adduser postgres
    # 授权
    sudo chown postgres /opt/postgresql-16.9/data /opt/postgresql-16.9/logs
    # 切换用户
    su - postgres
    # 进行初始化
    /opt/postgresql-16.9/bin/initdb -D /opt/postgresql-16.9/data
    /opt/postgresql-16.9/bin/pg_ctl -D /opt/postgresql-16.9/data -l /opt/postgresql-16.9/logs/postgresql.log start
    /opt/postgresql-16.9/bin/createdb test
    /opt/postgresql-16.9/bin/psql test

  

    # 启动
    /opt/postgresql-16.9/bin/pg_ctl -D /opt/postgresql-16.9/data start
    # 停止
    /opt/postgresql-16.9/bin/pg_ctl -D /opt/postgresql-16.9/data stop
    # 重启
    /opt/postgresql-16.9/bin/pg_ctl -D /opt/postgresql-16.9/data restart
    # 查看状态
    /opt/postgresql-16.9/bin/pg_ctl -D /opt/postgresql-16.9/data status

到这里我就安装成功了,可以验证:

/opt/postgresql-16.9/bin/psql --version

 以上参考的是这个大佬的帖子:Ubuntu 20.04下离线安装PostgreSQL - 没有星星的夏季 - 博客园

但是会有一个坑,就是不能直接 psql --version,似乎psql没有写进环境变量,但是export /opt/postgresql-16.9/bin到环境变量里面,也不能解决问题,最后软连接了一下:sudo ln -s /opt/postgresql-16.9/bin/psql /usr/bin/psql,这个问题解决了

方法二:下载依赖,离线安装

因为主包安装完postgresql还要安装对应的postgis,用方法一安装后的psql不在默认的安装位置,导致安装postgis扩展的时候提示找不到postgresql,所以又用方法二安装了一遍

1.用下面这个命令下载postgresql-16,gdal ,postgis的所有的依赖,但是不安装

apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends postgresql-16 | grep -v i386 | grep "^\w")

apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends libgdal34t64 | grep -v i386 | grep "^\w")

sudo apt-get -d install postgresql-16-postgis-3 #只下载不安装

默认下载路径:/var/cache/apt/archives/,cp到自己的路径下,打包放在没网的服务器上的自定义路径上,用dpkg安装:

sudo dpkg -i ~/postgis-offline/*.deb

安装过程可能会报错:类似于某个包依赖别的包,但是这个包没有安装,再执行下面的语句,在有网的服务器把需要的全部下载下来,再打包到相同的路径,再安装,直到没有报错

apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends XXX | grep -v i386 | grep "^\w")

 我到这里就安装成功了,验证安装:

#验证psql
psql --version
#验证postgis
su - postgres
psql
create extension postgis

参考:https://blog.csdn.net/E_oven/article/details/147047285

(99+ 封私信 / 80 条消息) ubuntu下载deb包及其所有依赖包 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值