Docker环境下使用R加载geojsonio包报错缺失libgeos_c.so.1文件
报错原因
该报错是因为Docker运行环境中缺少GEOS空间计算库的系统依赖包:
- R包
rgeos是GEOS库的R语言封装,加载时需要调用系统动态链接库libgeos_c.so.1 - 你使用的Docker基础镜像默认未预装GEOS相关运行时/开发包,导致
rgeos安装时没有生成对应的动态链接文件,或者生成后加载时找不到依赖文件,最终触发报错。
解决方法
根据你使用的Docker基础镜像的系统类型,选择对应操作即可:
方案1:写入Dockerfile(推荐,可复现)
针对Debian/Ubuntu系镜像(如官方rocker系列R镜像)
在安装R依赖包的步骤之前,先添加系统依赖安装指令:
RUN apt-get update && apt-get install -y --no-install-recommends \ libgeos-dev \ && rm -rf /var/lib/apt/lists/*
针对CentOS/RHEL系镜像
添加对应系统依赖安装指令:
RUN yum install -y geos-devel \ && yum clean all
完成系统依赖安装后,再重新安装对应R包即可:
install.packages(c("rgeos", "geojsonio"))
方案2:临时修复运行中的容器
如果需要临时调试已经启动的容器,直接进入容器执行对应系统包安装命令,再重装上述R包即可生效。
内容的提问来源于stack exchange,提问作者taha yab
相关产品推荐
相关产品推荐

