CentOS7虚拟机部署Nominatim服务器:数据导入报错求助
解决Nominatim导入时的"Scripts must be run from build directory"错误
别着急,这个错误本质是Nominatim的脚本需要依赖编译过程中生成的配置文件和二进制文件,必须在编译时创建的build目录下执行。我来给你理清楚这个目录到底在哪:
什么是Nominatim的build目录?
Nominatim推荐采用「out-of-source编译」的方式,也就是你会单独创建一个目录来存放编译生成的文件(和源码目录分开)。这个专门用来编译的目录就是所谓的build目录。
怎么找到你的build目录?
回忆编译步骤:如果你是按照官方指南操作的,通常会有类似这样的流程:
# 克隆源码 git clone https://github.com/openstreetmap/Nominatim.git cd Nominatim # 创建build目录 mkdir build cd build # 编译配置&编译 cmake .. make这里的
Nominatim/build就是你要找的目录——也就是你当初运行cmake和make命令的那个目录。特征识别:如果你忘了具体路径,找包含这些文件的目录:
Makefile(编译生成的)CMakeCache.txtnominatim二进制可执行文件- 编译生成的
utils子目录
正确的操作方式
找到build目录后,cd进入该目录,再执行你的导入命令。比如:
cd /path/to/your/nominatim-build # 举个导入命令的例子,根据你的实际命令调整 ./utils/setup.php --osm-file your-osm-data.pbf --all
所有Nominatim的管理脚本(导入、更新、维护)都需要在这个build目录下运行,因为它们依赖编译时生成的环境配置和文件。
内容的提问来源于stack exchange,提问作者Federico Alvarez
相关产品推荐
相关产品推荐

