下面以从源码编译 PostgreSQL(在 Debian / Ubuntu 上)为例,给你一个完整、实用、可复现的流程。以 PostgreSQL 16 为例(其他大版本基本同理)。
sudo apt update
sudo apt install -y \
build-essential \
libreadline-dev \
zlib1g-dev \
libicu-dev \
libssl-dev \
libxml2-dev \
libxslt1-dev \
pkg-config \
bison \
flex \
wget
可选但常用:
systemd 支持:无需额外包--enable-debug --enable-cassertcd /usr/local/src
sudo wget https://ftp.postgresql.org/pub/source/v16.3/postgresql-16.3.tar.gz
sudo tar xf postgresql-16.3.tar.gz
cd postgresql-16.3
(版本号可自行替换)
./configure \
--prefix=/usr/local/pgsql \
--with-openssl \
--with-zlib \
--with-icu \
--with-libxml \
--with-libxslt
| 参数 | 说明 |
|---|---|
--enable-debug |
调试符号 |
--enable-cassert |
断言检查(开发用) |
--with-systemd |
支持 systemd |
--without-readline |
无交互历史 |
make -j$(nproc)
sudo make install
安装后:
/usr/local/pgsql/binsudo useradd -m -s /bin/bash postgres
sudo mkdir -p /usr/local/pgsql/data
sudo chown -R postgres:postgres /usr/local/pgsql
sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
sudo -u postgres /usr/local/pgsql/bin/pg_ctl \
-D /usr/local/pgsql/data -l logfile start
检查:
/usr/local/pgsql/bin/psql -U postgres
创建:
sudo nano /etc/systemd/system/postgresql.service
示例:
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
ExecStop=/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl daemon-reload
sudo systemctl enable --now postgresql
autoconf
--prefix 隔离/usr/bin/psqlapt source postgresql-16
cd postgresql-16-*
dpkg-buildpackage -us -uc
安装依赖 → 下载源码 → configure → make → make install
→ 建用户 → initdb → 启动
如果你愿意,我可以:
直接告诉我你的使用场景即可。