下载最新postgresql并静态编译libpq 库

发布时间 2023-08-31 16:32:42作者: jingjingxyk

文档说明: 只记录关键的地方; 发布时间: 2023-08-31
环境:docker alpine-3.17 and debian 11-12
目的: 下载最新postgresql并静态编译libpq
状态: 完善中
备注:

postgresql 从 v16.0.0 版 开始使用 meson 构建系统

运行环境依赖

debian 环境

apt install -y git curl wget ca-certificates
apt install -y python3 python3-pip ninja-build 
apt install -y meson

apt install -y netcat

alpine 环境

apk add ninja python3 py3-pip

apk add netcat-openbsd

pip3 install meson

准备 git-proxy 脚本, 解决拉取源码慢

脚本 git-proxy 是自定义脚本
脚本放任何位置都可以
脚本需要可执行权限
创建文件 /tmp/git-proxy


 
cat  > /tmp/git-proxy <<___EOF___
#!/bin/bash
 
# 使用http-proxy
nc -X connect  -x 127.0.0.1:8016 "\\$1" "\\$2"
 
# 使用socks5 配置
# nc -X 5 -x 127.0.0.1:2000 "\\$1" "\\$2"
 
___EOF___
 
 
# 给脚本添加可执行权限
chmod a+x /tmp/git-proxy
 

解决拉取源代码慢,方式一: 使用 git-proxy

 
export GIT_PROXY_COMMAND=/tmp/git-proxy
 
git clone git://git.postgresql.org/git/postgresql.git
 

解决拉取源代码慢,方式二: 使用 git-proxy 全局配置

git config --global core.gitproxy "/tmp/git-proxy"
 
# 查看配置情况 
git config --get --global core.gitproxy
 
git clone git://git.postgresql.org/git/postgresql.git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
 
# 使用完毕,恢复为默认
git config --global core.gitproxy ""
 

构建 postgresql 最新版

未完待整理
使用 meson 构建系统


meson setup  build \
  -Dprefix=/opt/pgsql/ \
  -Dlibdir=/opt/pgsql/lib \
  -Dincludedir=/opt/pgsql/include \
  -Dbackend=ninja \
  -Dbuildtype=release \
  -Ddefault_library=static \
  -Db_staticpic=true \
  -Db_pie=true \
  -Dprefer_static=true \
  -Dbonjour=disabled \
  -Dbsd_auth=disabled \
  -Ddocs_pdf=disabled \
  -Dgssapi=disabled \
  -Dbonjour=disabled \
  -Dicu=enabled \
  -Dldap=disabled \
  -Dlibedit_preferred=true \
  -Dlibxml=enabled \
  -Dlibxslt=enabled \
  -Dlz4=enabled \
  -Dnls=enabled \
  -Dpam=disabled \
  -Dplperl=disabled \
  -Dplpython=disabled \
  -Dpltcl=disabled \
  -Dreadline=enabled \
  -Dssl=openssl \
  -Dbonjour=disabled \
  -Dsystemd=disabled \
  -Duuid=e2fs \
  -Dzlib=enabled \
  -Dzstd=enabled \


ninja -C build
ninja -C build install

参考文档

  1. postgresql
  2. postgresql CONFIGURE-OPTIONS
  3. postgresql
  4. pgsql install