1 操作系统(ubuntu24 最小化安装)
root@u24-pg-110:~# cat /etc/issue
Ubuntu 24.04.2 LTS \n \l
2 安装依赖
apt install systemtap-sdt-dev -y
apt install build-essential -y
apt install libssl-dev -y
apt install libicu-dev icu-devtools pkg-config -y
apt install liblz4-dev -y
apt install libzstd-dev -y
apt install bison -y
apt install flex -y
apt install readline -y
apt install libreadline-dev -y
apt install zlib1g-dev -y
apt install krb5-user libkrb5-dev libgssapi-krb5-2 -y
apt install libpam0g-dev -y
apt install libxml2-dev -y
apt install libxslt1-dev -y
apt install libldap2-dev libsasl2-dev libssl-dev -y
apt install libselinux1-dev -y
apt install uuid-dev -y
apt install gettext -y
apt install tcl-dev tcl8.6-dev -y
apt install perl libperl-dev -y
apt install python3-dev -y
3 postgresql编译
./configure --prefix=/usr/local/postgresql-17 \
--with-icu \
--with-perl \
--with-python \
--with-tcl \
--with-tclconfig=/usr/lib/tcl8.6 \
--with-openssl \
--with-includes=/usr/include/openssl \
--with-readline \
--with-pam \
--with-gssapi \
--with-libraries=/usr/lib64 \
--enable-nls \
--enable-dtrace \
--with-uuid=e2fs \
--with-libxml \
--with-libxslt \
--with-ldap \
--with-selinux \
--with-system-tzdata=/usr/share/zoneinfo \
--with-lz4 \
--with-zstd
make -j 2
make install
4 创建postgres 用户
adduser postgres
5 初始化数据库
mkdir /postgresql/data -p
chown -R postgres:postgres /postgresql/data/
su - postgres
#初始化数据库
/usr/local/postgresql-17/bin/initdb -D /postgresql/data/
#启动postgresql
/usr/local/postgresql-17/bin/pg_ctl -D /postgresql/data/ -l logfile start
#测试
postgres@u24-pg-110:~$ /usr/local/postgresql-17/bin/psql
psql (17.5)
Type "help" for help.
postgres=#
6 配置systemd和环境变量
vi ~/.bashrc
export PATH=/usr/local/postgresql-17/bin:$PATH
source ~/.bashrc
root@u24-pg-110:~# vi /lib/systemd/system/postgresql.service
[Unit]
Description=PostgreSQl database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGDATA=/postgresql/data
ExecStart=/usr/local/postgresql-17/bin/pg_ctl start -D ${PGDATA}
ExecStop=/usr/local/postgresql-17/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/local/postgresql-17/bin/pg_ctl reload -D ${PGDATA} -s
TimeoutSec=300
KillMode=mixed
[Install]
WantedBy=multi-user.target
#启动和设置开机启动
systemctl start postgresql
systemctl enable postgresql