如何在官方Alphine Linux版PostgreSQL容器内安装Pgvector拓展?
前言
前段时间花了不少时间安装LobeChat。看起来应该是个挺容易部署的AI聊天客户端,事实上安装过程中遇到很多问题,也让我从里面学到很多东西。(再一次考验了我的耐心
安装和使用的过程中各种代理配置的问题一次又一次让我加强了把服务器迁往香港的想法。本次教程全部假设服务器不在中国大陆或者已经配置好了代理。
这篇博客就是源于部署过程中的一个小挑战。LobeChat要求使用的PostgreSQL必须带有pgvector
插件。我是使用1Panel直接一键安装的PostgreSQL,它是用的官方的Alphine版本的PostgreSQL Docker镜像。
请先一次性看完博客再开始操作,否则可能会导致把我遇到的问题全都遇到一遍
过程
拉库
我们先拉下来pgvector
的储存库。
git clone https://github.com/pgvector/pgvector.git
毕竟Docker镜像都很精简,很可能此时你的容器里面是没有git
的。
apk add git
安装git
,再次尝试拉取
编译
按照常规流程,我们make
。
发现此时没有make
。
apk add make cmake
再次尝试make
发现没有gcc
。
apk add gcc
这时候我们会遇到一个可能令人惊讶的问题:没有<studio.h>
?
这时候如果你不太了解Alphine Linux
,可能很难找到问题所在,从网上找很久也难以找到怎么解决。
与更常见的glibc
不同,Alphine支持的是musl-libc
。我们需要安装对应的库。
apk add musl-dev
此时启动make
,我们发现已经能开始编译了。当我们以为没问题了的时候,报错又出现了:没有clang
15。
按照常规的想法,我尝试
apk add clang-15
但是不行。正当我觉得可能只能安装最新版本的clang
的时候,我尝试了
apk add clang15
结果还真的可以😂
此时再次启动make
,就能正常编译完了
(如果你实际操作的话直接把我提到的包全部安装然后make
就可以了,我只是记录我的过程)
安装
本来觉得安装很轻松,但是还是遇到了一个小错误,没有llvm15
,直接安装就好了。
apk add llvm15
此时make install
就可以正常安装了。
安装插件
此时我们的PostgreSQL插件列表里面已经有这个插件了
一定注意:我们实际安装的插件名叫做vector
,而不是pgvector
。
如果你使用的是LobeChat,那现在就可以继续部署了,它在初始化数据库的过程中会自动安装这个插件。
如果是其它项目,可以在PGAdmin里面打开这个数据库找到插件选项安装vector
即可。
或者连接这个数据库之后使用SQL语句
CREATE EXTENSION IF NOT EXISTS "vector";
安装即可。
此时我们已经可以正常使用这个插件了。