SmartOS 平台编译 PostgreSQL 数据库
本文简要介绍如何在 SmartOS 上搭建 PostgreSQL 开发环境,以及如何编译 PostgreSQL 数据库。
准备工作⌗
这里我们通过 git 来拉取代码,因此首先安装 git 程序。
# pkgin in git
接着,创建一个普通用户来编译测试 PostgreSQL 数据库。
# useradd -m -d /home/hunghu -s /bin/bash hunghu
# passwd hunghu
安装依赖⌗
通过源码编译安装,我们需要安装一些基本的工具,如 gcc
, make
等,我们使用下面的命令进行安装。
# pkgin -y in gcc10
# pkgin -y in gmake
# pkgin -y in flex bison
# pkgin -y in pkgconf
# pkgin -y in icu # --with-icu
# pkgin -y in libuuid # --with-uuid=e2fs
# pkgin -y in libxml2 # --with-libxml
# pkgin -y in libxslt # --with-libxslt
# pkgin -y in llvm clang # --with-llvm
# pkgin -y in openssl # --with-openssl
# pkgin -y in pam-krb5 # --with-gssapi
# pkgin -y in readline # --with-readline
编译完成之后,我们需要跑 TAP 测试,因此需要安装 TAP 测试套件。
# pkgin -y in p5-IPC-Run
最后,执行 configure
生成 Makefile 文件,并执行编译。
$ ls -I '*.sh' | xargs rm -rf
$ ../configure --prefix=/opt/local/pg \
--enable-debug \
--enable-dtrace \
--enable-nls \
--enable-rpath \
--enable-thread-safety \
--with-gssapi \
--with-icu \
--with-ldap \
--with-libxml \
--with-libxslt \
--with-llvm \
--with-openssl \
--with-pam \
--with-perl \
--with-python \
--with-uuid=e2fs \
--without-numa \
CFLAGS="-ggdb -O2 -ftree-vectorize -pipe -Wall -Wl,-rpath,/opt/local/pg/lib"
$ make -j $(nproc) -s && make install -s
$ (cd contrib; make -j $(nproc); make install -s)
汇总⌗
SmartOS 上关于 PostgreSQL 数据库的相关依赖汇总如下。
pkgin -y in flex bison
pkgin -y in gcc10
pkgin -y in git
pkgin -y in gmake
pkgin -y in p5-IPC-Run
pkgin -y in pkgconf
pkgin -y in clang
# Run-time requires libraries
pkgin -y in icu
pkgin -y in libuuid
pkgin -y in libxml2
pkgin -y in libxslt
pkgin -y in llvm
pkgin -y in openssl
pkgin -y in pam-krb5
pkgin -y in readline
引申⌗
DNS 配置⌗
编辑 /etc/resolv.conf
文件并加入正确的 DNS 服务器地址,例如 nameserver 114.114.114.114
。
修改软件源⌗
编辑 /opt/local/etc/pkgin/repositories.conf
文件,注释原有的软件源,添加 SmartOS 的软件源,如下所示。
$ tail -n 2 /opt/local/etc/pkgin/repositories.conf
# https://pkgsrc.joyent.com/packages/SmartOS/2021Q4/x86_64/All
https://pkgsrc.smartos.org/packages/SmartOS/2021Q4/x86_64/All
Read other posts