Installez PostGIS 2.5.5 sur CentOS7

introduction

J'ai décidé d'utiliser PostJIS parce que j'avais affaire à un peu d'informations cartographiques détaillées. Je travaillais en regardant diverses méthodes d'installation, mais il y avait des choses qui se sont bloquées, donc je vais l'écrire sous forme de mémorandum.

Qu'est-ce que PostGIS?

Vous pourrez enregistrer la latitude, la longitude, la zone, etc. en utilisant un type de données dédié (type de géométrie, etc.) qui sera disponible une fois installé. Vous pouvez l'utiliser pour calculer les informations de localisation et travailler avec des objets cartographiques à l'aide d'objets SIG.

Voir ici pour plus de détails: https://lets.postgresql.jp/documents/tutorial/PostGIS/1

environnement

CentOS 7.6

Ce dont vous avez besoin pour utiliser PostGIS

PostGIS a beaucoup de choses à utiliser. Nous installerons ce qui suit.

Préparation préalable

Installez PostgreSQL 11

Tout d'abord, préparez le DB à utiliser réellement.

###Installer le référentiel
$ sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

###Installez PostgreSQL
$ sudo yum install postgresql11
$ sudo yum install postgresql11-server

###Vérifiez si cela a été fait
$ id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres) 
$  ls /usr/pgsql-11
bin  lib  share

###Réglage du mot de passe, il vous sera demandé deux fois, alors entrez le même mot de passe
$ sudo su - postgres -c '/usr/pgsql-11/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'

###Changer de compte pour postgres
sudo su - postgres

### pgsql_Ouvrez le profil et écrivez ci-dessous
vi ~/.pgsql_profile
PATH=/usr/pgsql-11/bin:$PATH
MANPATH=/usr/pgsql-11/share/man:$MANPATH
PGDATA=/var/lib/pgsql/11/data
export PATH MANPATH PGDATA

### bash_Rechargez le profil puis quittez postgres
$ . ~/.bash_profile
$ exit

### postgresql-Commencez 11 et terminez si vous pouvez le démarrer en toute sécurité
$ sudo systemctl start postgresql-11.service

Installez divers autres packages

De plus, installez les packages nécessaires pour faciliter le travail à effectuer ultérieurement. Selon votre environnement, vous en avez peut-être déjà installé un, mais dans ce cas, ignorez la commande.

###Activer wget
$ sudo yum install wget
###Empêchez postgres11 de se fâcher avec les dépendances de package liées à LLVM
$ sudo yum install epel-release centos-release-scl
###Activer la compilation gcc
$ sudo yum install gcc-c++
###Fichiers d'en-tête de développement et bibliothèques
### epel-release et centos-release-Si vous n'incluez pas scl, vous ne pourrez peut-être pas installer en raison de dépendances, alors installez-le
$ sudo yum install postgresql11-devel
###Bibliothèque qui gère XML
$ sudo yum install libxml2-devel
###Activer python3
sudo yum install python36

Installation de PostGIS

Nous installerons PostGIS lorsque les préparatifs seront terminés. Le flux consiste à installer PostGIS après avoir installé le module pour utiliser PostGIS.

Installez GEOS 3.7.2.

$ cd /tmp/
$ wget http://download.osgeo.org/geos/geos-3.7.2.tar.bz2
$ tar xf geos-3.7.2.tar.bz2
$ cd geos-3.7.2/
$ ./configure
$ make
$ sudo make install
$ cd ../
$ rm -rf geos-3.7.2

Installez Proj4 4.8

$ sudo yum install proj-devel.x86_64

Installez GDAL 2.4.0

$ sudo yum install libstdc++.so.6
$ cd /tmp/
$ wget https://download.osgeo.org/gdal/2.4.0/gdal-2.4.0.tar.gz
$ tar xzf gdal-2.4.0.tar.gz
$ cd gdal-2.4.0
$ ./configure
$ make
$ sudo make install
$ cd ../
$ rm -rf gdal-2.4.0

Installez PostGIS 2.5.5

$ sudo yum install llvm-toolset-7
$ /tmp/
$ wget https://download.osgeo.org/postgis/source/postgis-2.5.5.tar.gz
$ tar xvzf postgis-2.5.5.tar.gz
$ cd postgis-2.5.5
$ ./configure --with-pgconfig='/usr/pgsql-11/bin/pg_config' 
$ make
$ sudo make install
$ cd ../
$ rm -rf postgis-2.5.5

Si vous n'avez pas "--with-pgconfig = '/ usr / pgsql-11 / bin / pg_config'" dans l'option ./configure lors de l'installation de PostGIS, l'erreur suivante peut se produire.

configure: error: could not find pg_config within the current path. You may need to re-run configure with a --with-pgconfig parameter.

Je ne trouve pas pg_config, donc on me dit de le spécifier, alors définissez les options et c'est OK.

Faire un lien symbolique

$ ls -l /usr/pgsql-11/lib/libgdal.so.20

Probablement, "/usr/pgsql-11/lib/libgdal.so.20" est introuvable. Par conséquent, je vais créer un lien symbolique ci-dessous.

$ sudo ln -s /usr/local/lib/libgdal.so.20.5.0 /usr/pgsql-11/lib/libgdal.so.20

Sans cela, l'erreur suivante se produira lors de la création d'EXTENSION à partir de psql.

test_postgis=# CREATE EXTENSION postgis;
ERROR:  could not load library "/usr/pgsql-11/lib/postgis-2.5.so": libgeos_c.so.1: cannot open shared object file: No such file or directory

Cache les bibliothèques partagées

Enfin, mettez à nouveau la bibliothèque partagée en cache. À ce moment, écrivez "/ usr / local / lib" dans la dernière ligne de "/etc/ld.so.conf". Si vous ne le faites pas, vous pouvez obtenir une autre erreur lors de la création d'EXTENSION.

$ sudo vi /etc/ld.so.conf
/usr/local/lib ← Ajouter seulement cette ligne
$ sudo ldconfig

Ceci termine le travail d'installation.

Création de DB

Créez une base de données pour vérifier si elle a été correctement installée. Pour le moment, redémarrez postgresql-11 avant de travailler.

$ sudo systemctl restart postgresql-11.service
###Démarrez psql
$ psql -U postgres
###Créer un DB de test pour confirmation
postgres=# CREATE DATABASE test_postgis;
CREATE DATABASE
postgres=# \c test_postgis
###Créer une extension
test_postgis=# CREATE EXTENSION postgis;
CREATE EXTENSION
test_postgis=# \dx
                                     List of installed extensions
  Name   | Version |   Schema   |                             Description
---------+---------+------------+---------------------------------------------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
 postgis | 2.5.5   | public     | PostGIS geometry, geography, and raster spatial types and functions
(2 rows)

Si la valeur de retour de \ dx ressemble à celle ci-dessus, elle réussit.

Insérer des données de test

Il semble qu'il a été installé, mais c'est peut-être ... donc je vais entrer les données et les vérifier.

###Créer une table
test_postgis=# CREATE TABLE station_position
(
  id serial PRIMARY KEY,
  station_name varchar(20),
  position geometry
);
CREATE TABLE
###Insérer des données
test_postgis=# INSERT INTO station_position (id, station_name, position) VALUES 
(1, 'Gare d'Ikebukuro', ST_GeomFromText('POINT(139.710911 35.729660)', 4326)),
(2, 'Gare de Shibuya', ST_GeomFromText('POINT(139.701647 35.658252)', 4326)),
(3, 'Gare de Tokyo', ST_GeomFromText('POINT(139.767114 35.681437)', 4326));
###Confirmation des données
test_postgis=# SELECT * FROM station_position;
  1 |Gare d'Ikebukuro| 0101000020E6100000BCEB6CC8BF7661408599B67F65DD4140
  2 |Gare de Shibuya| 0101000020E6100000C5CA68E4737661406743FE9941D44140
  3 |Gare de Tokyo| 0101000020E6100000B8C9A8328C78614066A4DE5339D74140

Après la saisie, vérifions les données en utilisant pgAdmin. Si pgAdmin n'est pas inclus, l'article suivant sera utile. URL de référence: procédure d'installation de pgAdmin Si vous essayez de vérifier le contenu du tableau créé par pgAdmin, vous verrez l'écran suivant. screencapture-127-0-0-1-55572-browser-2020-10-27-22_19_45.png Je pense qu'il y a une icône en forme d'œil entourée d'un cadre rouge. Si vous cliquez dessus, la carte sera affichée à partir de "Geometry Viewer", et si vous appuyez sur le bouton "+" pour l'agrandir, vous pouvez voir les points bleus à la gare de Tokyo. C'est l'emplacement défini dans la base de données. screencapture-127-0-0-1-55572-browser-2020-10-27-22_26_08.png Enfin, calculons la distance. Utilisez une fonction qui calcule la distance de la gare de Tokyo et de la gare d'Ikebukuro en ligne droite.

test_postgis=# SELECT ST_Distance( (SELECT position FROM station_position WHERE station_name = 'Gare de Tokyo')::GEOGRAPHY , (SELECT position FROM station_position WHERE station_name = 'Gare d'Ikebukuro')::GEOGRAPHY, TRUE);
 7382.264423442

L'unité est le mètre, soit environ 7,38 km. Quand je vérifie la distance sur la carte google, elle est de 7,36 km, donc c'est presque là. screencapture-google-co-jp-maps-place-35-7141559-139-7185288-14z-data-4m5-3m4-1s0x60188d5d4043e0dd-0x213775d25d2b034d-8m2-3d35-7295028-4d139-7109001-2020-10-27-21_36_37.png

finalement

Quand je l'ai installé moi-même, je n'ai pas trouvé beaucoup de matériel et j'ai eu une erreur et j'ai trébuché de différentes manières, alors j'espère que cela aide quelqu'un.

URL que j'ai utilisée comme référence

Installation de PostgreSQL sur CentOS https://medium.com/@basstazz3/install-postgis-2-5-to-centos-7-48bd5b261f1a

Recommended Posts

Installez PostGIS 2.5.5 sur CentOS7
Installez Neo4j 4.1.3 sur centOS
Installez Vertica 10.0 sur CentOS 6.10
Installez PostgreSQL 12 sur Centos8
Installez Python 3 sur CentOS 7
Installez kuromoji sur CentOS7
Installez jpndistrict sur CentOS 7
Installez Redmine 4.1.1 sur CentOS 7
Installation de Smokeping sur CentOS7
Installez PostgreSQL 13 sur CentOS 7.5
Installez OpenFOAM v2006 sur CentOS
Installez Jenkins sur CentOS de Docker
Installez Apache sur CentOS sur VirtualBox
Installez Ruby 2.7 sur CentOS 7 (SCL)
Installez Ruby 2.5 sur CentOS 7 en utilisant SCL
Installation de Java Open JDK 8 sur CentOS 7
Comment installer MariaDB 10.4 sur CentOS 8
Installez apache 2.4.46 à partir des sources sur CentOS 7
Étapes pour installer devtoolset-6 sur CentOS 7
Installez Java 9 sur Windows 10 et CentOS 7
Installez MariaDB (CentOS 8)
[CentOS] Installez apache-loggen
Installez samba4 à partir du code source sur CentOS8
Installez le client de messagerie Web Rainloop sur CentOS 8
Comment installer la beta php8.0 sur CentOS8
Installez CentOS 7 sur Raspberry pi 4 modèle B
Installez NextCloud sur CentOS 7 avec Alibaba Cloud ECS
Installez Gradle sur Mac
Commande pour installer nginx / PHP7 / php-fpm sur CentOS7
Installez Corretto 8 sur Windows
Tutoriel Maven sur CentOS 7
Installez Java sur Mac
Installation de Docker sur CentOS 6
Utiliser perltidy sur CentOS 8
Installez pyqt5 sur ubuntu
Essayez OpenLiteSpeed sur CentOS8
Tomcat v8 sur CentOS7
[CentOS7] Installez aws cli
Installez Docker sur Manjaro
Installation de Zabbix 5 sur CentOS 8
Installez Ruby sur Ubuntu 20.04
Utilisez mod_auth_cas sur CentOS 8
Installez lombok sur SpringToolSuite4
Jetty v8 sur CentOS7
Installation d'OpenJDK sur CentOS7
Installez openjdk11 sur Mac
Installez OpenJDK 8 sur mac
Installez MySQL 5.6 sur CentOS6 [Comment spécifier la version]
Installez ag (le chercheur d'argent) [sur CentOS / Ubuntu / Mac]
Essayez Rabbit MQ + PHP sur CentOS
Installez Docker sur Raspberry Pi
Réseau installer CentOS 8 avec Kickstart.