Postgres:安装特定版本的 plv8

Posted

技术标签:

【中文标题】Postgres:安装特定版本的 plv8【英文标题】:Postgres: Install a specific version of plv8 【发布时间】:2022-01-23 13:31:29 【问题描述】:

我正在 docker 中安装 plv8:

FROM postgres:13 AS build

ENV PLV8_VERSION=v3.0.0

RUN apt-get update && apt-get upgrade \
    && apt-get install -y git curl glib2.0 libc++-dev python python3-pip 
       libv8-dev postgresql-server-dev-$PG_MAJOR libncurses5

RUN pip install pgxnclient
RUN pgxn install plv8

这似乎仍然安装了 plv8 的2.3.11 版本,它与 Postgres 13 不兼容。

有什么方法可以指定pgxn 安装的版本吗?或者我可以安装 Postgres 13 版本的 plv8 的任何其他方式?

【问题讨论】:

【参考方案1】:

我们有一些适用于 Postgres 13 和 14 的二进制文件。您可以使用这些 Dockerfile 并通过 postgres 和 plv8 快速构建紧凑的映像:

Postgres 14.2, plv8 v3.0.0,基于 Alpine。图片大小为 235MB。

Postgres 13.6, plv8 v3.0.0,基于 Alpine。图片大小为 231MB。

Postgres 13.4, plv8 v2.13.15,基于 Debian。图片大小为 351MB。

Postgres 13.6, plv8 v3.0.0,基于 Debian。图片大小为 427MB。

$ git clone https://github.com/sibedge-llc/plv8-build.git
$ cd plv8-build/docker
$ docker build -t pg14-plv8-3
$ docker run -it -d --name pg14-plv8-3 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432/tcp pg14-plv8-3

您现在可以使用它。此外,我们将尽快将完成的带有 postgres 和 plv8 的 docker-images 发布到 Dockerhub。

【讨论】:

【参考方案2】:

看起来plv8 的最新版本尚未在pgxn 网络上发布。 last published version 是 2.3.11,这就是您在此处看到的内容。

要安装最新版本的 plv8,您可以按照 build instructions 更新您的 Dockerfile 以从源代码构建 plv8。一个好的起点是参考使用 postgres:10 基础镜像构建的 docker 镜像 clkao/postgres-plv8。

【讨论】:

以上是关于Postgres:安装特定版本的 plv8的主要内容,如果未能解决你的问题,请参考以下文章

Postgres绿色版本安装 windows

在 Postgres 9.4 中查找 JSON 数组中的最后一项

使用 Postgres 安装最新版本的 Rails 4 - 不推荐使用 PGconn、PGresult 和 PGError 常量

ubuntu上安装postgres以及在远程连接上的坑

Postgres安装设置及创建用户赋予权限

Bucardo 显示错误的 postgres 版本