下载最新postgresql并静态编译libpq 库
文档说明: 只记录关键的地方; 发布时间: 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 ""
构建 libpq 静态库 最新版
未完待整理
使用 meson 构建系统
postgresql 15 libpq 静态库,更多配置:pgsql-15-old.php
postgresql 16 libpq 静态库,更多配置:pgsql.php
postgresql latest libpq 静态库,更多配置:pgsql_latest.php
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