我正在尝试在 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 来解决这个问题,除非这是唯一可能的解决方案,我也不知道降级是否能解决问题。