Rocky Linux PostgreSQL 18 llvm+uring源码安装

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
负载均衡 关系型数据库 MySQL
基于 Nginx 实现 Nacos 集群部署|学习笔记
快速学习基于 Nginx 实现 Nacos 集群部署
708 0
基于 Nginx 实现 Nacos 集群部署|学习笔记
|
开发者 人工智能 自然语言处理
欢迎使用通义灵码
灵码使用指南!一键收藏。
144523 31
|
SQL 数据可视化 数据管理
人大金仓数据库Kingbase8在CentOS7上的安装与使用
人大金仓数据库Kingbase8在CentOS7上的安装与使用
6246 1
人大金仓数据库Kingbase8在CentOS7上的安装与使用
|
数据可视化 项目管理 调度
多任务处理方法:6大项目管理工具
项目管理中,合理选择工具至关重要。本文介绍了六种常用工具:SWOT分析、任务分解(WBS)、甘特图、二八原则、看板法和6W2H法,每种工具都有助于项目不同阶段的有效管理。
425 3
多任务处理方法:6大项目管理工具
|
12月前
|
安全 数据挖掘
服务器数据恢复—RAID5阵列中两块硬盘离线导致阵列崩溃的数据恢复案例
服务器数据恢复环境: 两组分别由4块SAS接口硬盘组建的raid5阵列,两组raid5阵列划分LUN并由LVM管理,格式化为EXT3文件系统。 服务器故障: RAID5阵列中一块硬盘未知原因离线,热备盘自动激活上线替换离线硬盘。在热备盘上线过程中,raid5阵列中又有一块硬盘离线。热备盘同步失败,该raid阵列崩溃,LVM结构变得不完整,文件系统无法正常使用。
|
人工智能 自然语言处理 语音技术
《ModelScope:模型即服务的创新与未来》
【10月更文挑战第2天】** 本文深入探讨了 ModelScope 所代表的模型即服务(MaaS)模式的发展背景、核心特点、技术优势、应用场景以及对各个领域带来的深远影响。通过对其架构、功能和实际案例的分析,展现了 ModelScope 在推动人工智能发展、促进产业升级和创新方面的巨大潜力,同时也对其未来发展趋势进行了展望。
1014 1
|
人工智能 API Docker
入门篇: 快速升级或迁移您的Confluence知识库
入门篇: 快速升级或迁移您的Confluence知识库
|
SQL 监控 关系型数据库
Influx Sql系列教程九:query数据查询基本篇二
前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持
901 0
|
编解码
荔枝派Zero(全志V3S)开启mplayer,播放音视频
mplayer 是一款开源的多媒体播放器,可以用来播放音视频, mplayer 自带多种格式的解码器,不需要我们再另外安装。本文介绍如何在 荔枝派上移植 mplayer 播放器,基于音频驱动实验。
601 0
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。