Rocky Linux PostgreSQL 18 llvm+uring源码安装

简介: PostgreSQL 18正式版发布,新增异步I/O、UUIDv7等功能。本文记录在Rocky Linux 9上从依赖安装、LLVM编译、io_uring配置到PostgreSQL 18源码编译的完整过程,涵盖关键步骤与命令,助你顺利构建最新版本数据库环境。

PostGreSQL 18正式版发布了,新增了异步I/O、UUIDv7等诸多功能,第一时间在Rocky Linux 9下载编译,纪录如下:

一、安装依赖包

dnf install git cmake gcc-c++ openssl-devel python3-devel libicu-devel bison flex readline lz4-devel readline-devel zlib-devel perl-FindBin docbook-dtds docbook-style-xsl libxslt -y

二、编译LLVM

这里以15.0.7为例,说明自行编译的方法

wget https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/llvm-project-15.0.7.src.tar.xz
tar Jxvf llvm-project-15.0.7.src.tar.xz
mkdir -p llvm-project-15.0.7.src/build
cd llvm-project-15.0.7.src/build
cmake -DCMAKE_BUILD_TYPE=Release \
      -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
      -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
      -DLLVM_TARGETS_TO_BUILD=Native \
      -DCMAKE_INSTALL_PREFIX="/usr/local" \
      ../llvm
make -j10 #这里根据自己的cpu个数来决定
cmake -P cmake_install.cmake

三、关于io_uring

Rocky Linux 9、10内置io_uring,但软件仓库里没有io_uring的开发包,导致带上 --with-liburing 时无法编译,我这里先删除内置的io_uring包,然后下载最新的io_uring自行编译,方法如下:

  1. 编译安装
dnf remove liburing     #删除内置包
wget https://github.com/axboe/liburing/archive/refs/tags/liburing-2.12.tar.gz
tar zxvf liburing-2.12.tar.gz
cd liburing-liburing-2.12/
./configure
make
make install
  1. 打开内核io_uring支持

Rocky Linux缺省是禁用io_uring的,通过以下命令可以查看io_uring支持是否打开

cat /proc/sys/kernel/io_uring_disabled  #会显示2,表示禁止

这时需要打开io_uring支持:

echo "kernel.io_uring_disabled=0" >> /etc/sysctl.conf
sysctl -p

完成上述操作后用 cat /proc/sys/kernel/io_uring_disabled 命令查看,如果返回 0 则表示io_uring内核支持已经打开。

四、编译PostgreSQL 18

本例默认安装在/usr/local/pgsql18目录下,需要提前导出io_uring开发包的位置:

wget https://ftp.postgresql.org/pub/source/v18.0/postgresql-18.0.tar.gz
#需要导出io_uring开发库路径,默认安装在/usr/lib下,如果不导出,则无法编译
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
CC=/usr/local/bin/clang CFLAGS="-O3 -fstrict-enums -fno-signed-zeros" CLANG=/usr/local/bin/clang LLVM_CONFIG=/usr/local/bin/llvm-config ./configure --prefix=/usr/local/pgsql18 --with-llvm --with-openssl --with-lz4 --with-python --with-liburing
make world
make install-world








相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
关系型数据库 Linux 数据库
PostgreSQL源码编译安装
本节详细介绍了如何通过源码编译安装 PostgreSQL 17.6,涵盖从源码下载、依赖安装、配置编译参数、执行编译与安装、创建数据库用户与目录、初始化数据库,到配置 systemd 启动服务的完整流程。内容适用于多种 Linux 发行版,如 Rocky Linux、CentOS、openEuler、Ubuntu、Debian 等,并提供了常见错误的解决方法及一键安装脚本,帮助用户高效完成 PostgreSQL 的源码部署。
918 0
PostgreSQL源码编译安装
|
负载均衡 关系型数据库 MySQL
基于 Nginx 实现 Nacos 集群部署|学习笔记
快速学习基于 Nginx 实现 Nacos 集群部署
764 0
基于 Nginx 实现 Nacos 集群部署|学习笔记
|
11天前
|
数据库 对象存储
2026年 | 2月云大使推广奖励规则
云大使推广返利活动,新增后付费产品返利最高返利45%。企业新用户下单返佣加码5%。新老用户都可参与返利活动。
|
2月前
|
安全 固态存储 Java
通用权限管理模型详解:从 ACL 到 RBAC0/1/2/3
本文深入解析ACL与RBAC两种主流权限模型,重点剖析RBAC的四个层级(RBAC0-RBAC3),涵盖角色继承、职责分离等核心机制,并结合实际场景给出选型建议,助你构建安全、可维护的权限体系。
|
编解码 开发者 开发工具
如何支持RTSP播放H.265(HEVC)流
随着H.265的普及,越来越多的开发者希望大牛直播SDK能支持低延迟的RTSP H.265播放,并分享相关经验: 废话不多说,先上图(以播放海康H.265 RTSP摄像头数据(分辨率:1920*1080)为例): 测试APP下载(SmartPlayer.
4619 0
|
开发者 人工智能 自然语言处理
欢迎使用通义灵码
灵码使用指南!一键收藏。
145619 31
|
数据可视化 项目管理 调度
多任务处理方法:6大项目管理工具
项目管理中,合理选择工具至关重要。本文介绍了六种常用工具:SWOT分析、任务分解(WBS)、甘特图、二八原则、看板法和6W2H法,每种工具都有助于项目不同阶段的有效管理。
500 3
多任务处理方法:6大项目管理工具
|
弹性计算 安全 Ubuntu
快速部署 Virtualmin 社区版
Virtualmin 是专为 Linux 系统设计的领先且最复杂的网络托管控制面板。本文介绍如何使用计算巢快速部署 Virtualmin 社区版。
快速部署 Virtualmin 社区版
|
Web App开发 算法 安全
什么是阿里云WoSign SSL证书?_沃通SSL技术文档
WoSign品牌SSL证书由阿里云平台SSL证书合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品。
2880 2
|
编解码
荔枝派Zero(全志V3S)开启mplayer,播放音视频
mplayer 是一款开源的多媒体播放器,可以用来播放音视频, mplayer 自带多种格式的解码器,不需要我们再另外安装。本文介绍如何在 荔枝派上移植 mplayer 播放器,基于音频驱动实验。
682 0