Cómo compilar módulos de PostgreSQL
Al desarrollar PostgreSQL con ServBay, es posible que necesite compilar e instalar módulos adicionales de PostgreSQL para extender las funcionalidades de la base de datos. Este artículo explicará cómo compilar módulos de PostgreSQL en el entorno de ServBay, específicamente cómo compilar los módulos postgis
y pg_jieba
.
Prerrequisitos
Antes de comenzar a compilar los módulos de PostgreSQL, asegúrese de haber completado la inicialización del entorno de compilación. Para obtener más detalles sobre los pasos para inicializar el entorno de compilación, consulte el documento Usar ServBay para recompilación.
Importancia de especificar la versión de PostgreSQL
ServBay incluye varias versiones de PostgreSQL. Cuando use herramientas de compilación, asegúrese de especificar la versión y configuración de PostgreSQL que está utilizando. Esto se debe a que diferentes versiones de PostgreSQL pueden tener diferentes configuraciones y dependencias, y seleccionar la versión correcta puede evitar errores de compilación y problemas de ejecución.
Este ejemplo usará PostgreSQL 15
.
Compilar el módulo postgis
El módulo postgis
es una extensión de PostgreSQL que se usa para manejar datos de sistemas de información geográfica (SIG). Los pasos para compilar el módulo postgis-3.4.2
son los siguientes:
Paso 1: Descargar el código fuente
Primero, descargue el paquete fuente del módulo postgis-3.4.2
desde el sitio web oficial de PostGIS.
wget https://download.osgeo.org/postgis/source/postgis-3.4.2.tar.gz
Paso 2: Extraer el paquete fuente
Extraiga el paquete fuente que descargó.
tar zxvf postgis-3.4.2.tar.gz
cd postgis-3.4.2
2
Paso 3: Configurar las opciones de compilación
Configure las opciones de compilación, especificando la ruta de configuración de PostgreSQL y otros parámetros.
./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"
Paso 4: Compilar e instalar
Compile e instale el módulo postgis-3.4.2
.
make -j ${CPU_NUMBER}
make install
2
Paso 5: Verificar la carga del módulo
Verifique si el módulo postgis
se ha cargado correctamente mediante la herramienta de línea de comandos de PostgreSQL:
${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 el módulo se ha cargado correctamente, debería ver la información de la versión de PostGIS
.
Compilar el módulo pg_jieba
El módulo pg_jieba
es una extensión de PostgreSQL que se usa para la segmentación de texto en chino. Los pasos para compilar el módulo pg_jieba
son los siguientes:
Paso 1: Obtener el código fuente
Primero, clone el repositorio del módulo pg_jieba
desde GitHub.
git clone https://github.com/jaiminpan/pg_jieba.git
cd pg_jieba
git submodule update --init --recursive
2
3
Paso 2: Configurar las opciones de compilación
Configure las opciones de compilación, especificando la ruta de configuración de PostgreSQL y otros parámetros.
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}
Paso 3: Compilar e instalar
Compile e instale el módulo pg_jieba
.
cmake --build builddir -j ${CPU_NUMBER}
cmake --install builddir
2
Paso 4: Verificar la carga del módulo
Verifique si el módulo pg_jieba
se ha cargado correctamente mediante la herramienta de línea de comandos de PostgreSQL:
${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 el módulo se ha cargado correctamente, debería ver la información relacionada con pg_jieba
.
Resumen
Siguiendo los pasos anteriores, puede compilar e instalar los módulos de PostgreSQL necesarios en el entorno de ServBay. Asegúrese de especificar la versión y configuración correcta de PostgreSQL durante el proceso de compilación para garantizar la compatibilidad del módulo con su entorno de base de datos. Espero que este artículo le ayude a completar correctamente la compilación de los módulos de PostgreSQL.