在 Ubuntu 12.04 上安装具有不同 PostGIS 插件版本的多个 PostgreSQL 版本

在 Ubuntu 12.04 上安装具有不同 PostGIS 插件版本的多个 PostgreSQL 版本

我有一台装有 Ubuntu 12.04.5 (precise) 的服务器,它在两个不同的端口 (5432 和 5433) 上运行两个不同的 PostgreSQL 版本 (8.3 和 9.1)。我从默认软件包源安装了它们。一切都运行良好且干净。

8.3 安装程序使用 PostGIS 插件(版本 1.5.3-2)。对于 9.1 安装程序,我想安装版本 > 2.0 的 PostGIS。我担心,当我手动安装新的 PostGIS 版本时,会破坏(重要的)正在运行的 8.3 安装程序。./configure-script 的前缀参数似乎已损坏而且我不知道如何防止新版本覆盖旧版本。

有没有安全的方法可以在 9.1 设​​置中启用新的扩展版本?

如果您需要有关系统的更多信息来回答这个问题,请告诉我。

答案1

我有一个运行 postgreSQL 服务器 9.1、9.3 和 9.5 的 Ubuntu 16.04,其中 9.5 安装了 postgis 2.2(通过软件包 postgresql-9.5-postgis-2.2)。在正常的服务器安装中,有/usr/bin/pg_config一个脚本,它首先查找pg_config/usr/lib/postgresql/*/bin/如果存在,则使用最新版本),如果没有,则使用/usr/bin/pg_config.libpq-dev客户端开发人员安装的一部分。您可以尝试运行pg_config以查看它是否找到版本以及它指向的位置。

我下载了postgis-2.2.4.tar.gz,解压并尝试运行 ./configure。结果出现了一条错误消息,说我必须安装服务器开发人员包。所以我照做了sudo apt-get install postgresql-server-dev-9.5(对于 9.5;你应该安装 9.1,请参阅http://packages.ubuntu.com/precise/postgresql-server-dev-9.1)。这确实提供了/usr/lib/postgresql/9.5/bin/pg_config,并且./configure确实成功了。

grep PGSQL config.log给了

| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
| #define PGSQL_LOCALEDIR "/usr/share/locale"
| #define POSTGIS_PGSQL_VERSION 95
PGSQL_BE_CPPFLAGS='-I/usr/include/postgresql/9.5/server'
PGSQL_BINDIR='/usr/lib/postgresql/9.5/bin'
PGSQL_DOCDIR='/usr/share/doc/postgresql-doc-9.5'
PGSQL_FE_CPPFLAGS='-I/usr/include/postgresql'
PGSQL_FE_LDFLAGS='-L/usr/lib/x86_64-linux-gnu -lpq'
PGSQL_MANDIR='/usr/share/postgresql/9.5/man'
PGSQL_SHAREDIR='/usr/share/postgresql/9.5'
POSTGIS_PGSQL_VERSION='95'
#define PGSQL_LOCALEDIR "/usr/share/locale"
#define POSTGIS_PGSQL_VERSION 95

因此安装路径(BINDIR、DOCDIR、MANDIR 和 SHAREDIR)都指向最新(9.5)安装。成功后makemake -n install一定不要忘记-n!)显示安装路径。大多数都指向/usr/lib/postgresql/9.5/lib/usr/share/postgresql/9.5/extension,但 除外liblwgeom,它将安装在/usr/local/lib和中/usr/local/include

因此,您可以先尝试一下./configure(这不会造成任何损害),看看它是否会出现错误,如果没有,安装会转到哪里。可能您必须安装开发文件,这也会安装pg_config适合您版本的正确文件。只要您不这样做sudo make install,就不应该安装任何东西。

当然,对您正在运行的安装进行可信的当前备份!

相关内容