Installieren Sie PostGIS 2.5.5 unter CentOS7

Einführung

Ich habe mich für PostJIS entschieden, weil ich mich mit ein paar detaillierten Karteninformationen befasst habe. Ich habe gearbeitet, während ich mir verschiedene Installationsmethoden angesehen habe, aber es gab einige Dinge, die hängen geblieben sind, deshalb werde ich es als Memorandum schreiben.

Was ist PostGIS?

Sie können Breitengrad, Längengrad, Fläche usw. mithilfe eines dedizierten Datentyps (Geometrietyp usw.) speichern, der nach der Installation verfügbar ist. Mit dieser Option können Sie Standortinformationen berechnen und mithilfe von GIS-Objekten mit Kartenobjekten arbeiten.

Siehe hier für Details: https://lets.postgresql.jp/documents/tutorial/PostGIS/1

Umgebung

CentOS 7.6

Was Sie brauchen, um PostGIS zu verwenden

PostGIS bietet viele Dinge, die Sie verwenden müssen. Wir werden Folgendes installieren.

Vorbereitungen

Installieren Sie PostgreSQL 11

Bereiten Sie zunächst die DB vor, die tatsächlich verwendet werden soll.

###Repository installieren
$ sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

###Installieren Sie PostgreSQL
$ sudo yum install postgresql11
$ sudo yum install postgresql11-server

###Überprüfen Sie, ob es getan wurde
$ id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres) 
$  ls /usr/pgsql-11
bin  lib  share

###Bei der Passworteinstellung werden Sie zweimal gefragt. Geben Sie also dasselbe Passwort ein
$ sudo su - postgres -c '/usr/pgsql-11/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'

###Wechseln Sie das Konto zu Postgres
sudo su - postgres

### pgsql_Öffnen Sie das Profil und schreiben Sie unten
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_Profil neu laden und dann postgres beenden
$ . ~/.bash_profile
$ exit

### postgresql-Starten Sie 11 und schließen Sie ab, wenn Sie es sicher starten können
$ sudo systemctl start postgresql-11.service

Installieren Sie verschiedene andere Pakete

Installieren Sie außerdem die erforderlichen Pakete, um die spätere Ausführung zu erleichtern. Abhängig von Ihrer Umgebung ist möglicherweise bereits eine installiert. Überspringen Sie in diesem Fall den Befehl.

###Aktivieren Sie wget
$ sudo yum install wget
###Verhindern Sie, dass postgres11 sich über LLVM-bezogene Paketabhängigkeiten ärgert
$ sudo yum install epel-release centos-release-scl
###Aktivieren Sie die gcc-Kompilierung
$ sudo yum install gcc-c++
###Entwicklungsheaderdateien und Bibliotheken
### epel-Release und Centos-release-Wenn Sie scl nicht einschließen, können Sie es möglicherweise aufgrund von Abhängigkeiten nicht installieren. Installieren Sie es daher
$ sudo yum install postgresql11-devel
###Bibliothek, die XML verarbeitet
$ sudo yum install libxml2-devel
###Aktivieren Sie python3
sudo yum install python36

PostGIS-Installation

Wir werden PostGIS installieren, wenn die Vorbereitungen abgeschlossen sind. Der Ablauf besteht darin, PostGIS nach der Installation des Moduls für die Verwendung von PostGIS zu installieren.

Installieren Sie 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

Installieren Sie Proj4 4.8

$ sudo yum install proj-devel.x86_64

Installieren Sie 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

Installieren Sie 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

Wenn Sie bei der Installation von PostGIS nicht "--with-pgconfig = '/ usr / pgsql-11 / bin / pg_config'" in der Option ./configure haben, kann der folgende Fehler auftreten.

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

Ich kann pg_config nicht finden, daher muss ich es angeben. Legen Sie also die Optionen fest und es ist in Ordnung.

Stellen Sie eine symbolische Verbindung her

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

Wahrscheinlich kann "/usr/pgsql-11/lib/libgdal.so.20" nicht gefunden werden. Daher werde ich unten einen symbolischen Link erstellen.

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

Ohne dies tritt beim Erstellen von EXTENSION aus psql der folgende Fehler auf.

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

Gemeinsame Bibliotheken zwischenspeichern

Zum Schluss die gemeinsam genutzte Bibliothek erneut zwischenspeichern. Schreiben Sie zu diesem Zeitpunkt "/ usr / local / lib" in die letzte Zeile von "/etc/ld.so.conf". Wenn Sie dies nicht tun, wird beim Erstellen von EXTENSION möglicherweise ein weiterer Fehler angezeigt.

$ sudo vi /etc/ld.so.conf
/usr/local/lib ← Nur diese Zeile hinzufügen
$ sudo ldconfig

Damit sind die Installationsarbeiten abgeschlossen.

DB-Erstellung

Erstellen Sie eine Datenbank, um zu überprüfen, ob sie ordnungsgemäß installiert wurde. Starten Sie postgresql-11 vorerst neu, bevor Sie arbeiten.

$ sudo systemctl restart postgresql-11.service
###Starten Sie psql
$ psql -U postgres
###Erstellen Sie eine Test-DB zur Bestätigung
postgres=# CREATE DATABASE test_postgis;
CREATE DATABASE
postgres=# \c test_postgis
###EXTENSION erstellen
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)

Wenn der Rückgabewert von \ dx wie oben aussieht, ist er erfolgreich.

Testdaten einfügen

Es scheint, dass es installiert wurde, aber es kann sein ... also werde ich die Daten eingeben und sie überprüfen.

###Tabelle erstellen
test_postgis=# CREATE TABLE station_position
(
  id serial PRIMARY KEY,
  station_name varchar(20),
  position geometry
);
CREATE TABLE
###Daten einfügen
test_postgis=# INSERT INTO station_position (id, station_name, position) VALUES 
(1, 'Ikebukuro Station', ST_GeomFromText('POINT(139.710911 35.729660)', 4326)),
(2, 'Shibuya Station', ST_GeomFromText('POINT(139.701647 35.658252)', 4326)),
(3, 'Tokyo Station', ST_GeomFromText('POINT(139.767114 35.681437)', 4326));
###Datenbestätigung
test_postgis=# SELECT * FROM station_position;
  1 |Ikebukuro Station| 0101000020E6100000BCEB6CC8BF7661408599B67F65DD4140
  2 |Shibuya Station| 0101000020E6100000C5CA68E4737661406743FE9941D44140
  3 |Tokyo Station| 0101000020E6100000B8C9A8328C78614066A4DE5339D74140

Überprüfen Sie nach der Eingabe die Daten mit pgAdmin. Wenn pgAdmin nicht enthalten ist, ist der folgende Artikel hilfreich. Referenz-URL: pgAdmin-Installationsverfahren Wenn Sie versuchen, den Inhalt der von pgAdmin erstellten Tabelle zu überprüfen, wird der folgende Bildschirm angezeigt. screencapture-127-0-0-1-55572-browser-2020-10-27-22_19_45.png Ich denke, es gibt ein augenähnliches Symbol, das von einem roten Rahmen umgeben ist. Wenn Sie darauf klicken, wird die Karte im "Geometry Viewer" angezeigt. Wenn Sie zum Vergrößern auf die Schaltfläche "+" klicken, werden die blauen Punkte an der Tokyo Station angezeigt. Dies ist der in der Datenbank festgelegte Speicherort. screencapture-127-0-0-1-55572-browser-2020-10-27-22_26_08.png Zum Schluss berechnen wir die Entfernung. Verwenden Sie eine Funktion, die berechnet, wie weit die Tokyo Station und die Ikebukuro Station in gerader Entfernung entfernt sind.

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

Das Gerät ist Meter, also sind es ca. 7,38 km. Wenn ich die Entfernung auf der Google-Karte überprüfe, sind es 7,36 km, also ist es fast da. 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

Schließlich

Als ich es selbst installiert habe, konnte ich nicht viel Material finden und habe einen Fehler erhalten und bin auf verschiedene Weise gestolpert. Ich hoffe, es hilft jemandem.

URL, die ich als Referenz verwendet habe

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

Recommended Posts

Installieren Sie PostGIS 2.5.5 unter CentOS7
Installieren Sie Neo4j 4.1.3 unter centOS
Installieren Sie Vertica 10.0 unter CentOS 6.10
Installieren Sie PostgreSQL 12 auf Centos8
Installieren Sie Python 3 unter CentOS 7
Installieren Sie kuromoji unter CentOS7
Installieren Sie jpndistrict unter CentOS 7
Installieren Sie Redmine 4.1.1 unter CentOS 7
Smokeping Installation unter CentOS7
Installieren Sie PostgreSQL 13 unter CentOS 7.5
Installieren Sie OpenFOAM v2006 unter CentOS
Installieren Sie Jenkins auf Dockers CentOS
Installieren Sie Apache unter CentOS auf VirtualBox
Installieren Sie Ruby 2.7 unter CentOS 7 (SCL)
Installieren Sie Ruby 2.5 unter CentOS 7 mit SCL
Java Open JDK 8 unter CentOS 7 installieren
So installieren Sie MariaDB 10.4 unter CentOS 8
Installieren Sie Apache 2.4.46 von der Quelle unter CentOS 7
Schritte zum Installieren von devtoolset-6 unter CentOS 7
Installieren Sie Java 9 unter Windows 10 und CentOS 7
Installieren Sie MariaDB (CentOS 8)
[CentOS] Installieren Sie Apache-Loggen
Installieren Sie samba4 aus dem Quellcode unter CentOS8
Installieren Sie den Webmail-Client Rainloop unter CentOS 8
So installieren Sie Beta PHP8.0 unter CentOS8
Installieren Sie CentOS 7 auf Raspberry pi 4 Model B.
Installieren Sie NextCloud unter CentOS 7 mit Alibaba Cloud ECS
Installieren Sie gradle auf dem Mac
Befehl zum Installieren von nginx / PHP7 / php-fpm unter CentOS7
Installieren Sie Corretto 8 unter Windows
Maven auf CentOS 7 Tutorial
Installieren Sie Java auf dem Mac
Docker-Installation unter CentOS 6
Verwenden Sie perltidy unter CentOS 8
Installieren Sie pyqt5 auf Ubuntu
Probieren Sie OpenLiteSpeed unter CentOS8 aus
Tomcat v8 unter CentOS7
[CentOS7] Installiere aws cli
Installieren Sie Docker auf Manjaro
Installation von Zabbix 5 unter CentOS 8
Installieren Sie Ruby unter Ubuntu 20.04
Verwenden Sie mod_auth_cas unter CentOS 8
Installieren Sie lombok auf SpringToolSuite4
Anlegestelle v8 auf CentOS7
OpenJDK-Installation unter CentOS7
Installieren Sie openjdk11 auf einem Mac
Installieren Sie OpenJDK 8 auf einem Mac
Installieren Sie MySQL 5.6 unter CentOS6 [So geben Sie die Version an]
Installiere ag (den silbernen Sucher) [unter CentOS / Ubuntu / Mac]
Probieren Sie Rabbit MQ + PHP unter CentOS aus
Installieren Sie Docker auf Raspberry Pi
Netzwerkinstallation CentOS 8 mit Kickstart.