Comment compiler des modules PostgreSQL
Lors du développement PostgreSQL avec ServBay, vous pourriez avoir besoin de compiler et d'installer des modules PostgreSQL supplémentaires pour étendre les fonctionnalités de la base de données. Cet article explique comment compiler des modules PostgreSQL dans l'environnement ServBay, en se concentrant notamment sur la compilation des modules postgis
et pg_jieba
.
Prérequis
Avant de commencer la compilation des modules PostgreSQL, assurez-vous que vous avez terminé l'initialisation de l'environnement de compilation. Pour des étapes détaillées sur la manière d'initialiser l'environnement de compilation, veuillez consulter le document Utilisation de ServBay pour la recompilation.
Importance de spécifier la version PostgreSQL
ServBay est livré avec plusieurs versions de PostgreSQL. Lors de l'utilisation des outils de compilation, il est impératif de spécifier la version PostgreSQL et la configuration appropriée. Ceci est crucial car différentes versions de PostgreSQL peuvent avoir des configurations et des dépendances différentes. Choisir la bonne version peut éviter des erreurs de compilation et des problèmes d'exécution.
Cet exemple utilise PostgreSQL 15
.
Compiler le module postgis
Le module postgis
est une extension PostgreSQL utilisée pour manipuler des données de systèmes d'information géographique (SIG). Voici les étapes pour compiler le module postgis-3.4.2
:
Étape 1 : Télécharger le code source
Tout d'abord, téléchargez le package source du module postgis-3.4.2
depuis le site officiel de PostGIS.
wget https://download.osgeo.org/postgis/source/postgis-3.4.2.tar.gz
Étape 2 : Décompresser le package source
Décompressez le package source que vous avez téléchargé.
tar zxvf postgis-3.4.2.tar.gz
cd postgis-3.4.2
2
Étape 3 : Configurer les options de compilation
Configurez les options de compilation en spécifiant le chemin de configuration de PostgreSQL et d'autres paramètres.
./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"
Étape 4 : Compiler et installer
Compilez et installez le module postgis-3.4.2
.
make -j ${CPU_NUMBER}
make install
2
Étape 5 : Vérifier le chargement du module
Utilisez l'outil en ligne de commande PostgreSQL pour vérifier si le module postgis
a été chargé avec succès :
${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
Si le module a été chargé avec succès, vous devriez voir les informations de version de PostGIS
.
Compiler le module pg_jieba
Le module pg_jieba
est une extension PostgreSQL utilisée pour le segmentage de texte chinois. Voici les étapes pour compiler le module pg_jieba
:
Étape 1 : Obtenir le code source
Tout d'abord, clonez le dépôt de code source du module pg_jieba
depuis GitHub.
git clone https://github.com/jaiminpan/pg_jieba.git
cd pg_jieba
git submodule update --init --recursive
2
3
Étape 2 : Configurer les options de compilation
Configurez les options de compilation en spécifiant le chemin de configuration de PostgreSQL et d'autres paramètres.
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}
Étape 3 : Compiler et installer
Compilez et installez le module pg_jieba
.
cmake --build builddir -j ${CPU_NUMBER}
cmake --install builddir
2
Étape 4 : Vérifier le chargement du module
Utilisez l'outil en ligne de commande PostgreSQL pour vérifier si le module pg_jieba
a été chargé avec succès :
${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
Si le module a été chargé avec succès, vous devriez voir des informations relatives à pg_jieba
.
Conclusion
En suivant les étapes ci-dessus, vous pouvez compiler et installer les modules PostgreSQL nécessaires dans l'environnement ServBay. Pendant le processus de compilation, il est crucial de spécifier la version correcte de PostgreSQL et les configurations appropriées pour garantir la compatibilité des modules avec votre environnement de base de données. Nous espérons que cet article vous aidera à compléter le travail de compilation des modules PostgreSQL sans encombre.