Сборка расширения pgvector
Подразумевается что на хосте установлены средства разработчика
apt install build-essential
apt install autoconf automake gdb git libffi-dev zlib1g-dev libssl-dev
для сборки данного расширения нам понадобится еще
apt install clang-11
Обязательно ознакамливаемся с аннотацией разработчика расширения - https://github.com/pgvector/pgvector
Сделаем локальную копию данного расширения
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
Укажем в переменной PATH путь до утилиты pg_config (требуется для сборки большинства расширений)
export PATH=/opt/tantor/db/15/bin:$PATH
не выполнив данного действия мы получит подобную ошибку
# make
make: pg_config: Command not found
cp sql/vector.sql sql/vector--0.8.0.sql
#
в случае удачного завершения сборки, последние строки вывода в консоль будут следующими
/usr/bin/clang-11 -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 -I. -I./ -I/opt/tantor/db/15/include/postgresql/server -I/opt/tantor/db/15/include/postgresql/internal -O2 -pipe -Wno-missing-braces -DTANTOR_BE -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/local/include/zstd -flto=thin -emit-llvm -c -o src/vector.bc src/vector.c
root@astra17:/home/toor/pgvector#
далее выполним установку, выполнив
make install
последние строки вывода в консоль будут следующими
cd '/opt/tantor/db/15/lib/postgresql/bitcode' && /usr/lib/llvm-11/bin/llvm-lto -thinlto -thinlto-action=thinlink -o vector.index.bc vector/src/bitutils.bc vector/src/bitvec.bc vector/src/halfutils.bc vector/src/halfvec.bc vector/src/hnsw.bc vector/src/hnswbuild.bc vector/src/hnswinsert.bc vector/src/hnswscan.bc vector/src/hnswutils.bc vector/src/hnswvacuum.bc vector/src/ivfbuild.bc vector/src/ivfflat.bc vector/src/ivfinsert.bc vector/src/ivfkmeans.bc vector/src/ivfscan.bc vector/src/ivfutils.bc vector/src/ivfvacuum.bc vector/src/sparsevec.bc vector/src/vector.bc
Выполним перезапуск сервера б.д. тантор, для того что-бы стало доступно только-что установленное расширение
systemctl restart tantor-be-server-15
посмотрим что расширений появилось в списке доступных для установки
su - postgres
postgres@astra17:~$
postgres@astra17:~$ psql
psql (15.10)
Type "help" for help.
postgres=# SELECT * FROM pg_available_extensions where name='vector';
name | default_version | installed_version | comment
--------+-----------------+-------------------+------------------------------------------------------
vector | 0.8.0 | | vector data type and ivfflat and hnsw access methods
(1 row)
postgres=#
теперь это расширение можно установить
postgres=# create extension vector;
CREATE EXTENSION
postgres=#
Возможно потребуется добавить данное расширение в shared_preload_libraries