plv8 и PostgreSQL 14

По умолчанию поддержка в 14 версии отсутствует (на момент написания статьи).

Чтобы установить расширение требуется выполнить следующие шаги:

Шаг 1. Ставим зависимости

sudo apt install make git g++ clang python2 pkg-config libc++-dev libc++abi-dev libglib2.0-dev libtinfo5 ninja-build postgresql-server-dev-14

Шаг 2. Указываем, что команда python вызывает python версии 2

sudo ln -s /usr/bin/python2 /usr/bin/python
Версия python

Шаг 3. Устанавливаем расширение из инструкции с сайта https://plv8.github.io/#building

wget https://github.com/plv8/plv8/archive/v3.0.0.tar.gz
tar -xvzf v3.0.0.tar.gz
cd plv8-3.0.0
make

Примечание: процесс сборки займёт значительное время и при этом будет загружено порядка 10Gb

Внимание: при сборке из интернета будет загружаться дополнительная информация

Шаг 4. Установка расширения

make install

Примечание автора

В моём случаи была ситуация, при которой заказчик предоставил Ubuntu 20.04 и установил на неё PostgreSQL 14.6 (запретив еще и доступ к интернету).

Обошёл эту ситуацию следующим образом:

  1. На виртуальной машине развернул образ Ubuntu 20.04
  2. Установил на неё postgresql 14
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt -y update
sudo apt upgrade

sudo apt -y install postgresql-14

Примечание: иначе устанавливалась 12 версия

3. Выполнил сборку расширения на виртуальной машине

4. Выполнил архивацию каталога plv8-3.0.0 (около 10Gb). После архивации через zip размер файла будет чуть меньше 5Gb

5. Далее скопировал данный архив на сервер заказчика и распаковал его (обязательно убедитесь, что на сервере будет достаточно свободного места).

6. Установил все зависимости, которые написал выше

7. Перешёл в каталог plv8-3.0.0 и выполнил команду

make install
make install

Установка расширения прошла удачно!!!

P.S.: наверно есть способ прощё, можно просто перенести специальные файлы, но у меня это не получилось, требовались специальные библиотеки

libunwind.so.1: cannot open shared object file: No such file or directory
Print Friendly, PDF & Email

Добавить комментарий