搭建PG库和安装pgvector、pgRouting插件
同事整理的分享:
搭建PG库和安装pgvector、pgRouting插件
所需软件 | 版本 | 下载地址 |
Postgresql | 15.12 | PostgreSQL: Linux downloads (Red Hat family) |
Pgrouting | 3.7.3 | https://github.com/pgRouting/ pgrouting/releases/tag/v3.7.3 |
Boost | 1.71 | https://archives.boost.io/release/ 1.71.0/source/boost_1_71_0.tar.gz |
cmake | 3.15 | https://github.com/Kitware/CMake/rel eases/download/v3.15.5/cmake-3.15.5.tar.gz |
Pgvector | 0.8.0 | https://github.com/pgvector/pgvector |
安装步骤
1.安装pg库
1.1 安装rpm存储库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
1.2 安装pg库
yum install -y postgresql15-server 遇到报错
解决方法:
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/libzstd-1.5.5-1.el7.x86_64.rpm
yum install -y ./libzstd-1.5.5-1.el7.x86_64.rpm
重新安装pg库
yum install -y postgresql15-server
1.3初始化pg库
/usr/pgsql-15/bin/postgresql-15-setup initdb
1.4修改pg库配置文件
vi /var/lib/pgsql/15/data/postgresql.conf
开启远程访问,将listen_address 修改为 * ,端口号根据情况更改
vi /var/lib/pgsql/15/data/pg_hba.conf
添加
host all all 0.0.0.0/0 md5
host replication all ::1/128 scram-sha-256
1.5启动数据库和设置开机自启动
systemctl start postgresql-15
systemctl enable postgresql-15
1.6 PG库修改密码
ALTER USER postgres WITH PASSWORD 'linux123.';
systemctl restart postgresql-15
1.7测试连接
2.安装插件pgvector
2.1克隆仓库到本地
cd /tmp
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector/
2.2编译并安装
make && make install
出现报错
原因,没有装postgresql15-devel
解决办法:
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-5.0.1-7.el7.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
wget https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
yum install -y centos-release-scl-rh llvm5*
在安装完centos-release-scl-rh之后会出现一个错误
安装时会报错源的问题
解决方法:对CentOS-SCLo-scl-rh.repo进行修改
vi CentOS-SCLo-scl-rh.repo
# 修改
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://vault.centos.org/centos/7/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
修改后如果发现依旧无法使用,将CentOS-SCLo-scl.repoyum源进行修改
vi CentOS-SCLo-scl.repo
# 修改
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://vault.centos.org/centos/7/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
改完之后
yum clean all
yum makecache
参考文档:centos7中安装了centos-release-scl后,之前的yum源变为不可用 解决方案-CSDN博客
重新安装postgresql15-devel
安装完之后重新进入目录
make
出现以下报错是因为没有安装gcc
yum -y install gcc gcc-c++ libstdc++-devel
安装完之后
2.3创建pgvector
su – postgres
create database test;
\c test
CREATE EXTENSION vector;
3.安装插件pgrouting
3.1上传并解压安装包
cd /tmp
tar -zxvf pgrouting-3.7.3.tar.gz
3.2创建构建目录并配置cmake
mkdir build
cmake -DCMAKE INSTALL PREFIX/usr/local/pgrouting-3.7.3 ..
出现报错
原因:没有安装cmake
不能直接安装cmake不然会出现
wget https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz
tar -zxvf cmake-3.15.5.tar.gz
./bootstrap
make && make install
安装完之后重新cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/pgrouting-3.7.3 ..
3.3编译并安装
编译之前需要安装依赖环境
我之前安装了boost高版本1.8.7之后make报错
需安装合理范围内依赖
tar -zxvf boost_1_71_0.tar.gz
./bootstrap.sh
./b2 install --with=all
安装好boost依赖环境后make
make
又出现报错
解决方法:yum -y install 'perl(version)' perl-Data-Dumper
参考文档:centos7 pgrouting351_cant locate version.pm-CSDN博客
重新make
make
make install
3.4创建pgrouting插件
su – postgres
\c test
CREATE EXTENSION pgrouting;
创建时发现还需创建postgis
3.4.1创建postgis
yum install epel-release
yum list postgis* (查看自己适合的posgis版本,我是pg15.12版本,所以选择安装postgis33_15)
yum install postgis33_15
安装完之后创建postgis
su – postgres
\c test
create extension postgis;
创建完postgis之后重新创建pgrouting
CREATE EXTENSION pgrouting;
\dx