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

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

相关推荐
青花瓷36 分钟前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
mzhan0171 小时前
Linux: lock: preempt_count 是一个线程级别的变量
linux·lock
Dream of maid2 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾2 小时前
统信系统UOS常用命令集
linux·运维·服务器
ZzzZZzzzZZZzzzz…2 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
一叶知秋yyds4 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
有想法的py工程师4 小时前
PostgreSQL 分区表排序优化:Append Sort 优化为 Merge Append
大数据·数据库·postgresql
楠奕6 小时前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
剑锋所指,所向披靡!6 小时前
Linux常用指令(2)
linux·运维·服务器
不愿透露姓名的大鹏7 小时前
Oracle归档日志爆满急救指南
linux·数据库·oracle·dba