当前位置: 首页 > news >正文

ubuuntu24.04 编译安装 PostgreSQL15.6+postgis 3.4.2 + pgrouting 3.6.0 +lz4

文章目录

  • 下载基础包
  • 下载源码包
  • 编译 PG
  • 编译 postgis
  • 编译安装 pgrouting
    • 下载源码包
    • 配置编译参数
    • 编译安装
  • 初始化数据库
  • 建表并检查列是否使用了 lz4 压缩算法
  • 检查 postgis 与 pgrouting 是否可以成功创建

下载基础包

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libssl-dev libgdal-dev \
libgeos-dev libproj-dev libprotobuf-c-dev protobuf-c-compiler libjson-c-dev sqlite3 libsqlite3-dev cmake pkg-config liblz4-dev \
git                    \
libboost-all-dev       \
libbz2-dev             \
liblz4-dev             \
libzstd-dev            \
libcurl4-openssl-dev

下载源码包

wget https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz
tar -xzf postgresql-15.6.tar.gzwget https://download.osgeo.org/postgis/source/postgis-3.4.2.tar.gz
tar -xzf postgis-3.4.2.tar.gz

编译 PG

./configure \--prefix=/usr/local/pgsql     \--with-openssl               \--with-libxml                \--with-readline              \--with-python	\--with-lz4 \PYTHON=/usr/bin/python3make -j$(nproc) world && make install-world

编译 postgis

./configure \--with-pgconfig=/usr/local/pgsql/bin/pg_config \--with-projdir=/usr \CPPFLAGS="-I/usr/include" \LDFLAGS="-L/usr/lib/x86_64-linux-gnu"make -j $(nproc)  && make installPostGIS is now configured for x86_64-pc-linux-gnu-------------- Compiler Info ------------- C compiler:           gcc -std=gnu99 -g -O2 -fno-math-errno -fno-signed-zeros -WallC++ compiler (Wagyu): gcc -std=c++11 -x c++ C++ compiler (FlatGeobuf): gcc -std=c++11 -x c++ CPPFLAGS:              -I/usr/include -I/usr/include  -I/usr/include/libxml2  -I/usr/include/json-c   -DNDEBUG -I/usr/includeLDFLAGS:              -L/usr/lib/x86_64-linux-gnu -lmSQL preprocessor:     /usr/bin/cpp -traditional-cpp -w -P -Upixel -UboolArchiver:             gcc-ar rs-------------- Additional Info ------------- Interrupt Tests:   ENABLED-------------- Dependencies -------------- GEOS config:          /usr/bin/geos-configGEOS version:         3.12.1GDAL config:          /usr/bin/gdal-configGDAL version:         3.8.4PostgreSQL config:    /usr/local/pgsql/bin/pg_configPostgreSQL version:   PostgreSQL 15.6PROJ4 version:        94Libxml2 config:       /usr/bin/xml2-configLibxml2 version:      2.9.14JSON-C support:       yesprotobuf support:     yesprotobuf-c version:   1004001PCRE support:         Version 2Perl:                 /usr/bin/perl--------------- Extensions --------------- PostgreSQL EXTENSION support:       enabledPostGIS Raster:                     enabledPostGIS Topology:                   enabledSFCGAL support:                     disabledAddress Standardizer support:       enabled-------- Documentation Generation -------- xsltproc:             xsl style sheets:     dblatex:              convert:              mathml2.dtd:          http://www.w3.org/Math/DTD/mathml2/mathml2.dtdconfigure: WARNING: 
configure: WARNING:  | You are building using --with-projdir. This option isn't standard and    |
configure: WARNING:  | might be incompatible with future releases of PROJ.                      |
configure: WARNING:  | You can instead adjust the PKG_CONFIG_PATH environment variable if you   |
configure: WARNING:  | installed software in a non-standard prefix.                             |
configure: WARNING:  | Alternatively, you may set the environment variables PROJ_CFLAGS and     |
configure: WARNING:  | PROJ_LIBS to avoid the need to call pkg-config. 

编译安装 pgrouting

下载源码包

git clone https://github.com/pgRouting/pgrouting.git
或下载压缩包
https://github.com/pgRouting/pgrouting/releases

配置编译参数

export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATh=/usr/local/pgsql/lib:$LD_LIBRARY_PATh
tar xf pgrouting-3.6.0.tar.gz
cd pgrouting-3.6.0
mkdir build && cd build
cmake .. \-DCMAKE_BUILD_TYPE=Release \-DCMAKE_INSTALL_PREFIX=/usr/local/pgsql \-DPOSTGRESQL_EXECUTABLE=/usr/local/pgsql/bin/pg_config

编译安装

make -j$(nproc)
make install
ldconfig

初始化数据库

useradd -m postgres
chown -R postgres:postgres /usr/local/pgsql
su - postgres
cd /usr/local/pgsql
./bin/initdb -U postgres -E UTF8 -D ./data

建表并检查列是否使用了 lz4 压缩算法

drop table if exists test_lz4;
CREATE TABLE test_lz4 (txt text COMPRESSION lz4);
INSERT INTO test_lz4 SELECT repeat('abcd',10000);
\d+ test_lz4
select pg_column_compression(txt) from test_lz4;postgres=# select pg_column_compression(txt) from test_lz4;pg_column_compression 
-----------------------lz4
(1 row)drop table if exists test;
CREATE TABLE test (txt text);
INSERT INTO test SELECT repeat('abcd',10000);
\d+ test
select pg_column_compression(txt) from test;
postgres=# select pg_column_compression(txt) from test;pg_column_compression 
-----------------------lz4
(1 row)

检查 postgis 与 pgrouting 是否可以成功创建

create extension fuzzystrmatch;
create extension pgrouting;
create extension plpgsql;
create extension postgis;
create extension postgis_raster;
create extension postgis_tiger_geocoder;
create extension postgis_topology;postgres=# \dxList of installed extensionsName          | Version |   Schema   |                        Description                         
------------------------+---------+------------+------------------------------------------------------------fuzzystrmatch          | 1.1     | public     | determine similarities and distance between stringspgrouting              | 3.6.0   | public     | pgRouting Extensionplpgsql                | 1.0     | pg_catalog | PL/pgSQL procedural languagepostgis                | 3.4.2   | public     | PostGIS geometry and geography spatial types and functionspostgis_raster         | 3.4.2   | public     | PostGIS raster types and functionspostgis_tiger_geocoder | 3.4.2   | tiger      | PostGIS tiger geocoder and reverse geocoderpostgis_topology       | 3.4.2   | topology   | PostGIS topology spatial types and functions
http://www.lqws.cn/news/214417.html

相关文章:

  • Oracle 客户端深度指南:SQL Developer 与 PL/SQL Developer 全面安装使用教程
  • SQL慢可能是触发了ring buffer
  • 《探秘跨网段局域网IP广播:解锁网络通信的新姿势》
  • Tableau for mac 驱动
  • element树结构el-tree,默认选中当前setCurrentKey无效
  • 从标准输入直接执行 ELF 二进制文件的实用程序解析(C/C++实现)
  • 【LeetCode】3170. 删除星号以后字典序最小的字符串(贪心 | 优先队列)
  • 电脑悬浮窗便签怎么实现四象限玩法?
  • 黄柏基因组-小檗碱生物合成的趋同进化-文献精读142
  • 1.认识Spring
  • 安卓基础(编译.Class)
  • python的numpy的MKL加速
  • 绘制饼图详细过程
  • 快速上手Linux全局搜索正则表达式(grep)
  • 探秘IBMS系统:能集成哪些建筑子系统实现一体化管理
  • 关于汉语普通话元音音位最好归纳为几个的问题
  • 【Go语言基础【15】】数组:固定长度的连续存储结构
  • 并行硬件环境及并行编程
  • Riverpod与GetX的优缺点对比
  • 26、跳表
  • Day15
  • Gartner《How to Create and Maintain a Knowledge Base forHumans and AI》学习报告
  • pycharm中提示C++ compiler not found -- please install a compiler
  • Gradle 7.0 及以上版本集中管理项目依赖项的版本号、插件版本和库坐标
  • 阿里巴巴ROLL:大规模强化学习优化的高效易用解决方案
  • Java-IO流之序列化与反序列化详解
  • 技巧小结:根据寄存器手册写常用外设的驱动程序
  • 室内电子地图制作核心技术解析:从三维建模到动态 POI 管理
  • C++常用的自动化测试库
  • HBuilderX安装(uni-app和小程序开发)