Как собрать модуль PostgreSQL
При разработке PostgreSQL с использованием ServBay, возможно, потребуется скомпилировать и установить дополнительные модули PostgreSQL для расширения функциональности базы данных. В данной статье будет рассказано, как скомпилировать модули PostgreSQL в среде ServBay, включая компиляцию модулей postgis
и pg_jieba
.
Предварительные условия
Перед началом компиляции модулей PostgreSQL убедитесь, что вы завершили инициализацию среды компиляции. Подробные шаги по инициализации среды компиляции можно найти в документе Использование ServBay для повторной компиляции.
Важность указания версии PostgreSQL
ServBay поставляется с несколькими версиями PostgreSQL. При использовании инструментов компиляции обязательно укажите версию PostgreSQL и соответствующие настройки, которые вы используете. Это важно, так как различные версии PostgreSQL могут иметь различные конфигурации и зависимости. Выбор правильной версии помогает избежать ошибок компиляции и проблем во время выполнения.
В этом примере используется PostgreSQL 15
.
Компиляция модуля postgis
Модуль postgis
— это расширение PostgreSQL для обработки данных географической информационной системы (ГИС). Вот шаги по компиляции модуля postgis-3.4.2
:
Шаг 1: Скачать исходный код
Сначала скачайте архива с исходным кодом модуля postgis-3.4.2
с официального сайта PostGIS.
wget https://download.osgeo.org/postgis/source/postgis-3.4.2.tar.gz
Шаг 2: Распаковать архива
Распакуйте скачанный архив с исходным кодом.
tar zxvf postgis-3.4.2.tar.gz
cd postgis-3.4.2
2
Шаг 3: Настройка опций компиляции
Настройте опции компиляции, укажите путь конфигурации PostgreSQL и другие параметры.
./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"
Шаг 4: Компиляция и установка
Скомпилируйте и установите модуль postgis-3.4.2
.
make -j ${CPU_NUMBER}
make install
2
Шаг 5: Проверка загрузки модуля
Проверьте загрузку модуля postgis
с помощью командной строки 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
Если модуль успешно загружен, вы должны увидеть информацию о версии PostGIS
.
Компиляция модуля pg_jieba
Модуль pg_jieba
— это расширение PostgreSQL для сегментации китайского текста. Вот шаги по компиляции модуля pg_jieba
:
Шаг 1: Получение исходного кода
Сначала клонируйте репозиторий с исходным кодом модуля pg_jieba
с GitHub.
git clone https://github.com/jaiminpan/pg_jieba.git
cd pg_jieba
git submodule update --init --recursive
2
3
Шаг 2: Настройка опций компиляции
Настройте опции компиляции, укажите путь конфигурации PostgreSQL и другие параметры.
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}
Шаг 3: Компиляция и установка
Скомпилируйте и установите модуль pg_jieba
.
cmake --build builddir -j ${CPU_NUMBER}
cmake --install builddir
2
Шаг 4: Проверка загрузки модуля
Проверьте загрузку модуля pg_jieba
с помощью командной строки 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
Если модуль успешно загружен, вы должны увидеть информацию, связанную с pg_jieba
.
Резюме
Следуя вышеописанным шагам, вы можете скомпилировать и установить необходимые модули PostgreSQL в среде ServBay. Во время компиляции обязательно укажите правильную версию PostgreSQL и соответствующие параметры, чтобы обеспечить совместимость модулей с вашей базой данных. Надеемся, что эта статья поможет вам успешно завершить компиляцию модулей PostgreSQL.