在ubuntu 24安装 postgresql 17 (源码安装)

发布于:2025-05-24 ⋅ 阅读:(16) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到