You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04下R语言安装SF包出现double free or corruption错误求助

解决Ubuntu 18.04上R的sf/rgdal包安装时PROJ的double free崩溃问题

这问题我之前帮朋友排查过,本质是系统PROJ库的版本冲突或残留依赖导致的C++层面内存错误,编译和运行时链接的PROJ版本不一致,或者旧版PROJ的内存管理bug都可能触发这个崩溃。下面是一步步的实操解决方案:

1. 彻底清理残留的相关依赖与R包

先把R里所有地理空间相关包完全卸载,避免残留配置干扰:

remove.packages(c("sf", "rgdal", "rgeos", "proj4"))

接着清理系统层面的PROJ、GDAL相关库,包括已安装包和残留文件:

sudo apt-get purge libproj-dev libproj15 gdal-bin libgdal-dev libgeos-dev
sudo apt-get autoremove
sudo apt-get clean

还要检查有没有手动编译安装的PROJ版本(比如之前自己编译放在/usr/local下的),如果有就手动删除:

sudo rm -rf /usr/local/lib/libproj*
sudo rm -rf /usr/local/include/proj*
sudo ldconfig

2. 更新R到较新版本(关键步骤)

Ubuntu 18.04默认的R版本(3.4.x)太老,和新版sf/rgdal的兼容性极差,先把R更到4.x系列:

# 添加R官方源的GPG密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
# 加入R 4.x的官方源
sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/'
# 更新并安装R
sudo apt-get update
sudo apt-get install r-base r-base-dev

3. 重新安装系统级的PROJ/GDAL依赖

用更新后的源安装完整的地理空间依赖,确保版本匹配:

sudo apt-get install libproj-dev libproj15 gdal-bin libgdal-dev libgeos-dev

4. 强制R使用系统指定的PROJ库安装sf

打开R,设置环境变量强制链接系统的PROJ库,避免编译时自动找错版本:

# 指定PROJ配置文件路径和库路径
Sys.setenv(PROJ_LIB = "/usr/share/proj")
Sys.setenv(LD_LIBRARY_PATH = "/usr/lib/x86_64-linux-gnu/")
# 从源码安装sf,明确指定PROJ的头文件和库路径
install.packages("sf", type = "source", 
                 configure.args = "--with-proj-include=/usr/include --with-proj-lib=/usr/lib/x86_64-linux-gnu")

5. 如果还是失败,尝试用PPA获取更新的依赖包

Ubuntu 18.04官方源的PROJ版本(5.2.0)可能存在bug,可以添加CRAN专属PPA获取更新的库:

sudo add-apt-repository ppa:cran2deb4ubuntu
sudo apt-get update
sudo apt-get install libproj-dev libgdal-dev

之后重复步骤4重新安装sf即可。

错误原因解析

double free or corruption 是典型的内存管理错误,常见触发场景:

  • 系统中同时存在多个PROJ版本(比如手动编译的新版和系统默认旧版),R编译时链接了一个版本,运行时加载了另一个,导致内存释放逻辑冲突;
  • 旧版本PROJ存在已知内存bug,Ubuntu 18.04官方源的PROJ版本较老,这类bug在后续版本已修复;
  • R版本过旧,与新版sf/rgdal的C++依赖不兼容。

内容的提问来源于stack exchange,提问作者Derek Corcoran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 22:47:49