Instalación e implementación de Postgresql 12.2 + PostGIS 3.0.1

Declaración Ambiental

Este entorno se utiliza para adaptarse a ArcGIS 10.8.1 y ArcGIS Pro 2.6.

nombre Versión Dependencias relacionadas
Sistema operativo centos7.6
postgresql 12.2 zlib-devel readline-devel
postgis 3.0.1 gccg++
GEOS 3.8.0
sqlite3 3.32.2
PROYECTO 6.3.1
protubuf 3.15.3
protubuf-c 1.3.3
json-c 0.13.1
Chacer 3.16.8 openssl openssl-desarrollo
CGAL 4.14.3 gmp-devel boost-devel mpfr-devel zlib-devel libxml2-devel
SFCGAL 1.3.7
GDAL 3.0.4
pcre 8.45

PostgreSQL : PostGIS se basa en PostgreSQL, por lo que se debe instalar PostgreSQL.
Compilador GNU C (gcc): gcc es el compilador de lenguaje C más estándar en Linux. Debe instalar gcc para compilar el código fuente de PostGIS y otro software o bibliotecas de funciones.
GNU Make (gmake o make) : también se utiliza para compilar el código fuente.
Proj4 : la biblioteca de reproyección Proj4 se utiliza para proporcionar la funcionalidad de reproyección de coordenadas en PostGIS.
GEOS : biblioteca de geometría GEOS, que se utiliza para admitir el procesamiento, análisis y otras funciones de información geométrica en PostGIS. GEOS también se puede considerar directamente como una biblioteca de algoritmos geométricos.
LibXML2 : LibXML2 se utiliza actualmente para algunas funciones importadas en PostGIS, como ST_GeomFromGML() y ST_GeomFromKML().
JSON-C : actualmente, JSON-C se utiliza para importar datos en formato GeoJSON a través de la función ST_GeomFromGeoJSON()
GDAL : se utiliza para la compatibilidad con PostGIS para datos ráster.
SFCGAL : se utiliza para la compatibilidad con PostGIS para datos tridimensionales.
PostGIS : extensiones para datos espaciales, índices espaciales y funciones espaciales para PostgreSQL.

Precauciones

1. Excepto por algunos componentes importantes, utilice YUM para instalar aquellos que se pueden instalar con YUM.
2. Es mejor no especificar la ruta de instalación durante la compilación e instalación local. Utilice la ruta predeterminada /usr/local para evitar que se encuentren bibliotecas compartidas y archivos ejecutables una vez completada la instalación.
3. Una vez modificadas las variables de entorno y las bibliotecas compartidas, deben actualizarse y recargarse a tiempo.
4. Si se encuentra con una situación en la que las variables y las bibliotecas compartidas se han configurado y las bibliotecas compartidas aún no se pueden leer durante la compilación e instalación, puede intentar cerrar la sesión ssh y volver a conectarse al servidor.
5. Al instalar, instale estrictamente de acuerdo con la versión especificada. Para conocer los parámetros de la versión, consulte las instrucciones oficiales de PostGIS.

Instalación de postgresql 12.2

1. Instalar bibliotecas básicas

yum -y install zlib-devel readline-devel

2. Cree un usuario del sistema

Ejecute el siguiente comando como usuario root

# 创建 postgres 用户
adduser postgres
# 给 postgres 用户设置密码
passwd postgres

3. Descargue el paquete de instalación.

Dirección de descarga: https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz

4. Descomprimir, compilar e instalar

# 切换为postgres用户
su - postgres

# 进入安装包所在文件夹
cd /home/postgres/software

# 解压安装包
tar -xzvf postgresql-12.2.tar.gz 

# 进入解压后的安装包
cd postgresql-12.2

# 进行编译检查,设置安装目录为/home/postgres,构建时开启支持xml数据类型 --with-libxml
./configure --prefix=/home/postgres --with-libxml

# ./configure无误后,执行编译安装
make
make install

5. Configuración de variables de entorno

Si necesita utilizar comandos relacionados con PostgreSQL en cualquier entorno, debe agregar el contenido de $PGHOME/bin a la variable de entorno PATH y editar el archivo /etc/profile.
Si solo lo está utilizando con el usuario postgres, debe editar el archivo /home/postgres/.bash_profile.

vi /etc/profile
# 在最后追加以下内容
export PGHOME=/home/postgres
export PATH=$PGHOME/bin:$PATH
# 如果需要设置一个单独的目录作为数据库目录,则需要明确指定PGDATA环境变量,且该文件夹的owner必须为postgres用户
export PGDATA=/home/postgres/data

Si necesita que las variables de entorno surtan efecto inmediatamente, ejecute el siguiente comando

source /etc/profile
source /home/postgres/.bash_profile

6.Inicializa el directorio de datos.

Inicialice el directorio de la base de datos (instancia única)
. Después de configurar el directorio bin de PG como una variable de entorno, ejecute directamente el siguiente comando para la base de datos de destino
(deje que el directorio de la base de datos sea /home/postgres/data)

initdb -D /home/postgres/data

Si es necesario ajustar el tamaño del registro WAL (utilizado principalmente para archivar y optimizar la configuración maestro-esclavo, una vez que se inicializa y especifica initdb, no se puede modificar), puede ejecutar el siguiente comando (no es necesario), la unidad de –wal-segsize es MB initdb
- D /data/pgdata --wal-segsize=128

7. Configurar el inicio de sesión remoto

1. Edite el archivo pg_hba.conf

vi /home/postgres/data/pg_hba.conf

Agregar host all all 0.0.0.0/0 md5al archivo significa que todos los usuarios pueden iniciar sesión en PostgreSQL a través de md5 (contraseña) a través de cualquier IP.
Como se muestra abajo:

host all all 0.0.0.0/0 md5

Insertar descripción de la imagen aquí
2. Edite el archivo postgresql.conf

vi /home/postgres/data/postgresql.conf

Modifique listen_addresses a *, como se muestra en la siguiente figura:
Insertar descripción de la imagen aquí

8. Configurar los servicios del sistema.

1. Cree el archivo postgresql.service

vi /usr/lib/systemd/system/postgresql.service

escribir

[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGPORT=5432
Environment=PGDATA=/home/postgres/data
OOMScoreAdjust=-1000
ExecStart=/home/postgres/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
ExecStop=/home/postgres/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/home/postgres/bin/pg_ctl reload -D ${PGDATA} -s
TimeoutSec=300
[Install]
WantedBy=multi-user.target

2.Comandos de control

systemctl daemon-reload      # 启用服务控制守护
systemctl start postgresql   # 启动
systemctl stop postgresql    # 停止
systemctl restart postgresql # 重启
systemctl enable postgresql  # 开机自启
systemctl staus postgresql   # 查看状态

9.Establecer contraseña de usuario de la base de datos

# 切换到postgres用户
su - postgres 
# 直接用postgres超级用户登录,默认不需要密码,psql直接回车就以postgres用户进入了postgres数据库
psql -U postgres
# 修改超级用户密码为:postgres
alter role postgres with pass 'postgres';
# 退出
\q

10.Prueba de conexión remota

Acceso a través de conexión Navicat.
Insertar descripción de la imagen aquí
La conexión exitosa es la siguiente
Insertar descripción de la imagen aquí

Instalación de PostGIS 3.0.1

Nota: Primero instale gcc y gcc-c++, y otros componentes dependerán de ellos para la compilación e instalación.

yum install -y gcc gcc-c++

Vista de versión

gcc --version
g++ --version

1.Compilación e instalación de GEOS

Dirección de descarga: https://download.osgeo.org/geos/geos-3.8.0.tar.bz2

1. Comando de instalación

tar -jxvf geos-3.8.0.tar.bz2
cd geos-3.8.0
./configure
make
make install

2. Prueba

geos-config --version

Insertar descripción de la imagen aquí

2.Compilación e instalación de PROJ.

Nota: proj6.3.2 depende de sqlite3, y la versión de sqlite3 debe ser ≥ 3.11. La versión de sqlite3 instalada por el sistema yum es 3.7, por lo que sqlite3 debe actualizarse.

2.1.Actualizar sqlite3

Dirección de descarga: http://www.sqlite.org/2020/sqlite-autoconf-3320200.tar.gz

1.instalación mmm

yum -y install sqlite sqlite-devel

2. Compile e instale

tar zxvf sqlite-autoconf-3320200.tar.gz
cd sqlite-autoconf-3320200/ 
./configure --prefix=/usr/local/sqlite
make
make install

3.Configuración del entorno

vi /etc/profile
# 在最后面追加以下内容
export SQLITE3=/usr/local/sqlite
export PATH=$SQLITE3/bin:$PATH
export PKG_CONFIG_PATH=/usr/local/sqlite/lib/pkgconfig

# 刷新
source /etc/profile

4. Versión de reemplazo

cp /usr/local/sqlite/bin/sqlite3 /usr/bin/

5. Prueba

sqlite3 --version

Insertar descripción de la imagen aquí

2.2.Instalar proyecto

Dirección de descarga: http://download.osgeo.org/proj/proj-6.3.1.tar.gz

1. Comando de instalación

tar -zxvf proj-6.3.1.tar.gz
cd proj-6.3.1
./configure
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

2. Prueba

proj

Insertar descripción de la imagen aquí

3. Compilación e instalación de Protubuf-c

Nota: protobuf-c depende de protobuf, así que instale protobuf primero.

3.1 Instalar protubuf

Dirección de descarga: https://github.com/protocolbuffers/protobuf/releases/download/v3.15.3/protobuf-all-3.15.3.tar.gz

1. Comando de instalación

tar -zxvf protobuf-all-3.15.3.tar.gz
cd protobuf-3.15.3
./configure
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

2. Configuración del entorno

vi /etc/profile
# 最后面追加以下内容
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

# 刷新
source /etc/profile

3. Prueba

protoc --version

Insertar descripción de la imagen aquí

3.2 Instalar protobuf-c

Dirección de descarga: https://github.com/protobuf-c/protobuf-c/releases/download/v1.3.3/protobuf-c-1.3.3.tar.gz

1. Comando de instalación

tar -zxvf protobuf-c-1.3.3.tar.gz
cd protobuf-c-1.3.3
./configure
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

2. Prueba

protoc-c --version

Insertar descripción de la imagen aquí

4.Compilación e instalación de Json-c

Dirección de descarga: https://codeload.github.com/json-c/json-c/tar.gz/refs/tags/json-c-0.13.1-20180305

Comando de instalación

tar -zxvf json-c-json-c-0.13.1-20180305.tar.gz
cd json-c-json-c-0.13.1-20180305/
./configure
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

5.Compilación e instalación de SFCGAL

Nota: Dado que la versión correspondiente de PostGIS es relativamente nueva, la versión predeterminada de CMake de CentOS 7 es insuficiente y es necesario compilar e instalar una nueva versión de CMake.

5.1.Instalar CMake

Dirección de descarga: https://github.com/Kitware/CMake/releases/download/v3.16.8/cmake-3.16.8.tar.gz

1. Instale bibliotecas relacionadas con openssl

yum -y install openssl openssl-devel

2. Comando de instalación

tar -zxvf cmake-3.16.8.tar.gz
cd cmake-3.16.8
./bootstrap
gmake
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí
3. Prueba

cmake --version

Insertar descripción de la imagen aquí

5.2.Instalar CGAL

Nota: sfcgal y pgRouting (análisis de red) dependen de boost y cgal. Puede suceder que boost y cgal se instalen y compilen correctamente, pero sfcgal no se puede compilar o pgrouting no se puede usar después de la compilación. La razón es el problema de boost y cgal, solo recuerde una cosa, instale solo en la ruta predeterminada, no especifique la ruta.

Dirección de descarga: https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.14.3/CGAL-4.14.3.tar.xz

1. Instale bibliotecas dependientes relevantes

yum -y install gmp-devel boost-devel mpfr-devel zlib-devel libxml2-devel

2. Comando de instalación

tar -xvf CGAL-4.14.3.tar.xz
cd CGAL-4.14.3
mkdir build && cd build
cmake ..
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

5.3.Instalar SFCGAL

Dirección de descarga: https://codeload.github.com/Oslandia/SFCGAL/tar.gz/refs/tags/v1.3.7

1. Comando de instalación

tar -zxvf SFCGAL-1.3.7.tar.gz
cd SFCGAL-1.3.7  
mkdir build && cd build
cmake .. 
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí
Una vez completada la instalación, debe configurar un enlace suave a libSFCGAL.so para evitar que la instalación posterior de gdal no pueda encontrarlo.

ln -s /usr/local/lib64/libSFCGAL.so /usr/local/lib/libSFCGAL.so
ln -s /usr/local/lib64/libSFCGAL.so.1 /usr/local/lib/libSFCGAL.so.1

6.Compilación e instalación de GDAL

Dirección de descarga: https://download.osgeo.org/gdal/3.0.4/gdal-3.0.4.tar.gz

1. Comando de instalación

tar -zxvf gdal-3.0.4.tar.gz 
cd gdal-3.0.4 
./configure
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí
2. Prueba

gdal-config --version

Insertar descripción de la imagen aquí

7.Compilación e instalación de Pcre.

Dirección de descarga: http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz

1. Comando de instalación

tar -zxvf pcre-8.45.tar.gz 
cd pcre-8.45
./configure 
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

2. Prueba

pcre-config --version

Insertar descripción de la imagen aquí

8.Compilación e instalación de PostGIS

Dirección de descarga: https://download.osgeo.org/postgis/source/postgis-3.0.1.tar.gz

1. Comando de instalación

tar -zxvf postgis-3.0.1.tar.gz
cd postgis-3.0.1
./configure --with-pgconfig=/home/postgres/bin/pg_config
make
make install

La instalación exitosa es la siguiente:
Insertar descripción de la imagen aquí

2. Configuración del entorno

vi /etc/ld.so.conf
# 在最后面追加以下内容
/home/postgres/lib
/usr/local/lib
/usr/local/lib64

# 重新加载
ldconfig

3. Prueba
3.1 Cambiar de usuario de postgres

su - postgres

3.2 Iniciar sesión en la base de datos

psql -p 5432 -d postgres -U postgres -W

3.3 Crear una biblioteca de prueba

create datebase test;

3.4 Ingrese a la biblioteca de prueba y cree una extensión

# 进入测试库
\c test;
# 创建postgis扩展
create extension postgis;

# 验证栅格类数据需要的raster扩展
create extension postgis_raster;

# 如果安装带有sfcgal,验证下三维sfcgal扩展
create extension postgis_sfcgal;

Insertar descripción de la imagen aquí

3.5 Verificar versiones de postgresql y postgis

select  VERSION();
select * from pg_available_extensions WHERE name like 'postgis';

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_41166785/article/details/127674169
Recomendado
Clasificación