Wie man PostgreSQL-Module kompiliert
Beim Entwickeln mit ServBay für PostgreSQL müssen Sie möglicherweise zusätzliche PostgreSQL-Module kompilieren und installieren, um die Funktionen der Datenbank zu erweitern. Dieser Artikel erläutert, wie Sie in der ServBay-Umgebung PostgreSQL-Module, einschließlich der Module postgis
und pg_jieba
, kompilieren können.
Voraussetzungen
Bevor Sie mit der Kompilierung von PostgreSQL-Modulen beginnen, stellen Sie sicher, dass Sie die Initialisierung der Kompilierungsumgebung abgeschlossen haben. Die detaillierten Schritte zur Initialisierung der Kompilierungsumgebung finden Sie in der Dokumentation Verwendung von ServBay zur Zweitkompilierung.
Wichtigkeit der Angabe der PostgreSQL-Version
ServBay enthält mehrere PostgreSQL-Versionen. Beim Kompilieren mit den Kompilierungswerkzeugen müssen Sie unbedingt die verwendete PostgreSQL-Version und die zugehörigen Konfigurationen angeben. Denn unterschiedliche Versionen von PostgreSQL können unterschiedliche Konfigurationen und Abhängigkeiten haben. Die Auswahl der richtigen Version kann Kompilierungsfehler und Laufzeitprobleme vermeiden.
In diesem Beispiel wird PostgreSQL 15
verwendet.
Kompilierung des postgis-Moduls
Das postgis
-Modul ist eine Erweiterung für PostgreSQL, die zur Bearbeitung von Geoinformationssystemen (GIS) genutzt wird. Hier sind die Schritte zur Kompilierung des postgis-3.4.2
-Moduls:
Schritt 1: Quellcode herunterladen
Laden Sie zunächst das Quellcode-Paket des postgis-3.4.2
-Moduls von der offiziellen PostGIS-Website herunter.
wget https://download.osgeo.org/postgis/source/postgis-3.4.2.tar.gz
Schritt 2: Quellcodepaket entpacken
Entpacken Sie das heruntergeladene Quellcode-Paket.
tar zxvf postgis-3.4.2.tar.gz
cd postgis-3.4.2
2
Schritt 3: Kompilierungsoptionen konfigurieren
Konfigurieren Sie die Kompilierungsoptionen, geben Sie den PostgreSQL-Konfigurationspfad und andere Parameter an.
./configure --prefix=${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7 --bindir=${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/bin --datarootdir=${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/share --with-protobufdir=${SERVBAY_BIN_PATH} --disable-nls --without-raster --without-topology --with-pgconfig=${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/bin/pg_config CFLAGS="${CFLAGS} -I${SERVBAY_COMMON_INCLUDE_PATH}/libxml2 -I${SERVBAY_COMMON_INCLUDE_PATH}" CXXFLAGS="${CXXFLAGS} -std=c++17 -I${SERVBAY_COMMON_INCLUDE_PATH}/libxml2 -I${SERVBAY_COMMON_INCLUDE_PATH}" LDFLAGS="${LDFLAGS} -L${SERVBAY_COMMON_LIB_PATH} -lxml2 -lz -lpthread -liconv -licui18n -licuuc -licudata -lm"
Schritt 4: Kompilieren und installieren
Kompilieren und installieren Sie das postgis-3.4.2
-Modul.
make -j ${CPU_NUMBER}
make install
2
Schritt 5: Modul laden überprüfen
Überprüfen Sie mit dem PostgreSQL-Befehlszeilentool, ob das postgis
-Modul erfolgreich geladen wurde:
${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/bin/psql -c "CREATE EXTENSION postgis;"
${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/bin/psql -c "SELECT PostGIS_Version();"
2
Wenn das Modul erfolgreich geladen wurde, sollten Sie die PostGIS
-Versionsinformationen sehen können.
Kompilierung des pg_jieba-Moduls
Das pg_jieba
-Modul ist eine Erweiterung für PostgreSQL für die chinesische Segmentierung. Hier sind die Schritte zur Kompilierung des pg_jieba
-Moduls:
Schritt 1: Quellcode erhalten
Klonen Sie zunächst das Repository des pg_jieba
-Moduls von GitHub.
git clone https://github.com/jaiminpan/pg_jieba.git
cd pg_jieba
git submodule update --init --recursive
2
3
Schritt 2: Kompilierungsoptionen konfigurieren
Konfigurieren Sie die Kompilierungsoptionen, geben Sie den PostgreSQL-Konfigurationspfad und andere Parameter an.
cmake -S . -B builddir -DCMAKE_PREFIX_PATH=${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7 -DCMAKE_OSX_DEPLOYMENT_TARGET=${BUILD_OS_MIN_VERSION} -DCMAKE_OSX_ARCHITECTURES=${BUILD_CPU_ARCH_CMAKE}
Schritt 3: Kompilieren und installieren
Kompilieren und installieren Sie das pg_jieba
-Modul.
cmake --build builddir -j ${CPU_NUMBER}
cmake --install builddir
2
Schritt 4: Modul laden überprüfen
Überprüfen Sie mit dem PostgreSQL-Befehlszeilentool, ob das pg_jieba
-Modul erfolgreich geladen wurde:
${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/bin/psql -c "CREATE EXTENSION pg_jieba;"
${SERVBAY_PACKAGE_FULL_PATH}/postgresql/15/15.7/bin/psql -c "SELECT * FROM pg_available_extensions WHERE name = 'pg_jieba';"
2
Wenn das Modul erfolgreich geladen wurde, sollten Sie die entsprechenden Informationen zu pg_jieba
sehen können.
Zusammenfassung
Durch die obigen Schritte können Sie die notwendigen PostgreSQL-Module in der ServBay-Umgebung kompilieren und installieren. Beim Kompilieren ist es unbedingt erforderlich, die richtige PostgreSQL-Version und die entsprechenden Konfigurationen anzugeben, um sicherzustellen, dass die Module mit Ihrer Datenbankumgebung kompatibel sind. Wir hoffen, dass dieser Artikel Ihnen hilft, die Kompilierungsarbeiten für PostgreSQL-Module erfolgreich abzuschließen.