在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

### 安装 PostgreSQL 17.5 的指南 要在 Ubuntu 18 上安装 PostgreSQL 17.5,可以通过以下方式实现。通常情况下,PostgreSQL 的官方存储库提供了最新的版本和支持的旧版本。以下是具体的步骤: #### 添加 PostgreSQL 存储库 为了获得最新版本的支持以及特定版本的选择能力,需要先添加 PostgreSQL 的官方 APT 存储库。 ```bash sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' ``` 接着导入存储库的 GPG 密钥以验证包的真实性: ```bash wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - ``` 更新系统的包索引以便识别新添加的存储库中的软件包: ```bash sudo apt update ``` #### 安装指定版本的 PostgreSQL 通过 `apt list` 查看可用的 PostgreSQL 版本列表并确认所需版本是否存在: ```bash apt list -a postgresql* ``` 如果发现 PostgreSQL 17.5 可用,则可以直接安装该版本: ```bash sudo apt install -y postgresql-17.5 ``` 注意:某些情况下,APT 缓存可能未及时同步到目标版本。此时可以尝试手动下载 `.deb` 文件或编译源码来完成安装[^1]。 #### 验证安装 启动服务后检查是否成功安装了所需的 PostgreSQL 版本: ```bash psql --version ``` 登录到 PostgreSQL 控制台测试功能正常与否: ```bash sudo -u postgres psql ``` 退出控制台命令为 `\q`。 --- ### 数据库配置与初始化 对于 Python 应用程序集成 PostgreSQL,推荐使用 SQLAlchemy 进行 ORM 映射和会话管理。下面是一个简单的数据库连接脚本示例[^3]: ```python from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker DATABASE_URI = 'postgresql://username:password@localhost/your_database_name' engine = create_engine(DATABASE_URI) Session = sessionmaker(bind=engine) def init_db(): # 初始化数据库表结构逻辑写在此处 pass ``` 确保替换 URI 中的相关参数(用户名、密码、主机名等),使它们匹配实际部署环境的要求。 --- ### 虚拟化与桌面环境支持 考虑到您提到的操作系统背景,如果您正在虚拟机中运行 Ubuntu 或者利用 WSL 环境工作,请提前做好基础设置优化。例如,在 VirtualBox 下载扩展工具增强图形性能;或者针对 WSL 启动时调整内存分配策略以适应大型数据库负载需求[^5]。 此外,还可以考虑安装 FSearch 工具用于快速定位项目文件路径等问题解决效率提升[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值