Установка расширения vector в PostgreSQL
Содержание
Введение
Пакета с расширением vector нет в официальном репозитории Debian, но он есть в репозитории PostgreSQL. Если для вас не принципиально, из какого репозитория будет устанавливаться и обновляться сервер PostgreSQL, тогда можно не заморачиваться с выставлением приоритетов репозиториев и с указанием конкретной версии пакета с расширением vector - можете воспользоваться этими репозиториями для того, чтобы установить из них совместимые между собой версии сервера и расширения по умолчанию. Мне же хотелось сохранить уже установленный из официального репозитория пакет с сервером, не обновляя его, и установить версию расширения, совместимую с уже установленной версией сервера. Совместимость можно проверять по минимальной требуемой версии пакета postgresql-jit-llvm.
Настройка репозитория
Добавить в /etc/apt/sources.list репозиторий pg-vector:
deb https://apt-archive.postgresql.org/pub/repos/apt/ bookworm-pgdg-archive main
Установить GPG-ключ репозитория:
wget https://www.postgresql.org/media/keys/ACCC4CF8.asc
mv ACCC4CF8.asc /etc/apt/trusted.gpg.d/apt-archive.postgresql.org.asc
Обновить список пакетов, доступных через репозитории:
apt-get update
Понизить приоритет пакетов из репозитория так, чтобы пакеты из этого репозитория не заменяли пакеты из официального репозитория Debian. Для этого создать файл /etc/apt/preferences.d/apt-archive.postgresql.org.pref со следующим содержимым:
Package: *
Pin: origin "apt-archive.postgresql.org"
Pin-Priority: 100
Определение совместимой версии
Первым делом определим версию установленного сервера:
$ dpkg -l | grep postgresql
ii postgresql-15 15.6-0+deb12u1 amd64 The World's Most Advanced Open Source Relational Database
ii postgresql-client-15 15.6-0+deb12u1 amd64 front-end programs for PostgreSQL 15
ii postgresql-client-common 248 all manager for multiple PostgreSQL client versions
ii postgresql-common 248 all PostgreSQL database-cluster manager
Посмотрим, какую версию интерфейса jit-llvm предоставляет установленный сервер:
$ apt-cache show postgresql-15=15.6-0+deb12u1 | grep Provides:
Provides: postgresql-15-jit-llvm (= 14), postgresql-contrib-15
Сервер предоставляет интерфейс jit-llvm версии 14.
Находим пакет подходящей версии, который требует jit-llvm от 14 версии или выше:
$ apt-cache show postgresql-15-pgvector | egrep 'Depends|Version' | grep -B1 '= 14'
Version: 0.5.1-1.pgdg120+1
Depends: postgresql-15, postgresql-15-jit-llvm (>= 14), libc6 (>= 2.14)
Version: 0.5.0-2.pgdg120+1
Depends: postgresql-15, postgresql-15-jit-llvm (>= 14), libc6 (>= 2.14)
Version: 0.5.0-1.pgdg120+1
Depends: postgresql-15, postgresql-15-jit-llvm (>= 14), libc6 (>= 2.14)
Version: 0.4.4-1.pgdg120+1
Depends: postgresql-15, postgresql-15-jit-llvm (>= 14), libc6 (>= 2.14)
Version: 0.4.2-1.pgdg120+1
Depends: postgresql-15, postgresql-15-jit-llvm (>= 14), libc6 (>= 2.14)
Установка расширения
Установить расширение:
apt-get install postgresql-15-pgvector=0.5.1-1.pgdg120+1