0

我正在尝试在 Ubuntu 20.04 和 PostgreSQL 12 上安装 Nominatim 3.4.1,所以我按照此处的官方说明进行操作,问题是当我执行时make,出现此错误:

[ 79%] 构建目标 osm2pgsql_lib
[ 79%] 构建目标 osm2pgsql
[ 79%]运行外部 makefile /usr/lib/postgresql/12/lib/pgxs/src/makefiles/pgxs.mk
/srv/nominatim/Nominatim-3.4.0/module/Makefile:11:警告:覆盖目标“安装”的配方
/usr/lib/postgresql/12/lib/pgxs/src/makefiles/pgxs.mk:241:警告:忽略目标“安装”的旧配方
/srv/nominatim/Nominatim-3.4.0/module/nominatim.c:1:10: 致命错误: postgres.h:没有这样的文件或目录
    1 | #include "postgres.h" 
      |          ^~~~~~~~~~~~
编译终止。
make[3]: *** [<builtin>: nominatim.o] 错误 1
make[2]: *** [module/CMakeFiles/nominatim_lib.dir/build.make:61: /srv/nominatim/Nominatim-3.4.0/module/dummy] 错误 2
make[1]: *** [CMakeFiles/Makefile2:1908: module/CMakeFiles/nominatim_lib.dir/all] 错误 2
make: *** [Makefile:141: all] 错误 2

文件的第一行nominatim.c

#include "postgres.h"
#include "fmgr.h"

我试过了find / -name "postgres.h"find / -name "fmgr.h"没有这样的文件。

我几乎可以肯定问题在于 PostgreSQL 12 删除了这些文件,更改了名称或类似的东西,而 Nominatim 3.1.4 不知道该更改。我不想降级 PostgreSQL 来解决这个问题,除非这是唯一可能的解决方案,我也不知道降级是否能解决问题。

4

1 回答 1

0

就我而言,这通过重新安装 postgres 解决了sudo apt install postgresql-server-dev-12 postgresql-12-postgis-3 \ postgresql-contrib-12 postgresql-12-postgis-3-scripts

于 2021-03-24T02:10:22.627 回答