我正在尝试使用 CentOS 7.5 在 PostgreSQL v9.6 的同一实例中安装多个版本的 PostGis 和 PgRouting。
我一直在与依赖项和共享库作斗争,以使一切正常。
所以问题是,管理 de 依赖版本的最佳方式是什么?如果我安装了一个主要的依赖版本,旧的 Postgis 版本仍然可以工作吗?
一些依赖项是:GDAL、GEOS、Proj4 等。
我一直在将它们组织在文件夹中,其中包含具有依赖项版本的子文件夹,在依赖项安装期间在 ./configure 脚本上使用 --prefix=path/v3.0.0 。
示例:文件夹 -> GEOS - 子文件夹:v3.0.0、v3.4.0 等。
之后,当我想安装任何 PostGIS 版本时,我使用 ./configure 来使用任何依赖项绝对路径。
示例:./configure --with-pgconfig=path --with-gdal=path/version --with-proj4=path/version ...
但我不确定这是正确的方法。
欢迎任何建议来清除我的想法。
在同一个 PostgreSQL 软件目录中安装多个版本的 PostGIS 是行不通的,因为生成的共享对象将具有相同的名称。使用不同
--prefix
是不够的,因为大部分 PostGIS 没有安装在那里,而是安装在 PostgreSQL 软件目录中。因此,您应该复制您的 PostgreSQL 软件目录并将不同的 PostGIS 版本安装在不同的目录中。
如果你真的需要不同版本的 Proj、GDAL 等(为什么?),事情就会变得困难,你必须
LD_LIBRARY_PATH
为每个实例使用不同的版本。但也许它更简单,因为 PostGIS 的最新版本是二进制兼容的,并且带有多个版本的安装脚本。
所以也许你可以只安装最新的 PostGIS 版本并在不同的数据库中使用不同的版本: