如何安装特定版本的PostgreSQL?

17

我需要在Ubuntu 14.04上安装Postgres 9.6.6,但是命令

apt-get install postgresql-9.6

安装 9.6.7

如何安装9.6.6?

一个命令的输出。

apt-cache policy postgresql-9.6
is
postgresql-9.6:
  Installed: 9.6.7-1.pgdg14.04+1
  Candidate: 9.6.7-1.pgdg14.04+1
  Version table:
 *** 9.6.7-1.pgdg14.04+1 0
        500 http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg/main amd64 Packages
        100 /var/lib/dpkg/status

2
这个问题最好在其他的StackExchange网站上问,比如askubuntu.com这里有一个问答来指导你正确的方向。 - JNevill
2
我认为从存储库安装此版本是不可能的。您需要从源代码安装它,这可能会很麻烦 :-) 别忘了,Postgres 10非常性感,并具有一堆强大的功能 ;-) - Jim Jones
3个回答

17

您可以使用PostgreSQL开发组维护的存储库安装特定版本。

对于Ubuntu 18.04

  • 创建文件/etc/apt/sources.list.d/pgdg.list,并添加以下行作为存储库:

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

  • 导入存储库签名密钥并更新软件包列表
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

在此之后,您现在可以执行以下操作:sudo apt-get install postgresql-10或将其调整为所需的版本。更多信息 请在此处查看


4
pgdg 不包含次要版本。我刚刚尝试安装11.12版本,但只有11.13版本可用。 - Alex Yu

0

我也遇到了从旧的小版本备份中恢复数据库的问题。

看起来有三种解决方案:

  1. 使用仓库中的最新小版本(并祈祷稳定工作)
  2. 从源代码构建(正如Laurenz所提到的,这是一条艰难的道路)
  3. 使用docker容器,具体指定postgresql版本(只需挂载PGDATA、配置文件即可,不是很困难)- docker容器足以检查备份一致性,并且适合管理和管理。

你不需要祈祷,小的更新总是二进制兼容的,并且不会引入任何新的行为。 - Laurenz Albe

-5

您应该始终安装每个版本的最新小版本,因此不要安装9.6.6。

来自PostgreSQL开发组的二进制下载仅为每个版本提供最新版本(至少对于RPM软件包而言;旧版Debian软件包有一个存储库)。

如果您确实需要9.6.6,则可能需要从源代码安装。


2
这可能是一个问题,因为与语义化版本控制所示不同,PostgreSQL补丁可能会引入破坏性变更,即使主要.次要版本号相同。曾经有一段时间,由于安全漏洞修复,它们在所有主要.次要版本上破坏了备份的向后兼容性。 - Haroldo_OK
1
我强烈不同意。PostgreSQL根本不使用语义化版本控制,但我们严格避免在次要版本中进行任何行为更改(除了错误修复)。我想你是在谈论CVE-2018-1058的修复。那不是一个破坏性的变化。它所破坏的是使用不明确函数的对象的还原,这些函数可以用于特权升级,这是最不侵入的修复。如果您不想升级,因为您依赖于有缺陷的行为,... - Laurenz Albe
2
我们并不是依赖于错误行为:我们需要恢复在旧版本上制作的备份,但工具拒绝恢复它们。备份文件本身可能没有利用任何漏洞,但新的工具却拒绝恢复它。 - Haroldo_OK
这些备份不安全,不能进行恢复。 - Laurenz Albe
5
无论如何,为了恢复备份,我们不得不安装旧版本。 - Haroldo_OK
@LaurenzAlbe 是正确的,从 pgdg 安装特定版本是不可能的。我刚试图安装 11.12 版本 - 只有 11.13 版本可用。 - Alex Yu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接