加载 rgdal 时出错

Error loading rgdal

我已经成功安装了 rgdal 软件包以及依赖项 GDAL 和 Proj4。安装后,我使用 library 函数成功地在 R 中加载了包。但是,在我最近一次登录后,当我输入命令 library(rgdal) 时,我收到一条错误消息:

Error: package or namespace load failed for 'rgdal' in dyn.load(file, 
DLLpath = DLLpath, ...):
unable to load shared object '/home/nikhail1/R/x86_64-pc-linux-gnu-
library/3.4/rgdal/libs/rgdal.so':
libgdal.so.20: cannot open shared object file: No such file or directory

我知道这意味着 libgdal 文件没有 link,但我不确定如何修复它。 libgdal.so.20 在 /home/nikhail1/bin/gdal/lib/ 下的系统中。 rgdal.so 文件位于我的 /home/nikhail1/ 系统中 R 库中的 rgdal 文件夹下。我没有权限在共享库上执行 ldconfig 功能(我是新手)。有没有人有一个功能可以帮助我让系统识别通往 libgdal.so.20 的路径。我在 Linux CentOs 6.9 系统上工作。我无法执行任何 sudo apt-getyumbrew 功能。

非常感谢,尼克海尔

您可以设置 LD_LIBRARY_PATH 以包含 /home/nikhail1/bin/gdal/lib,即 bash

export LD_LIBRARY_PATH="/home/nikhail1/bin/gdal/lib:$LD_LIBRARY_PATH"
ldd /home/nikhail1/R/x86_64-pc-linux-gnu-library/3.4/rgdal/libs/rgdal.so

应报告 libgdal.so.20 已找到。如何使此持久化取决于您的桌面环境。

为了在 R 中 运行 rgdal 函数,我在 gdal、rgdal 和它们的正确设置上受了很多苦。我目前的防弹例程如下:

卸载 GDAL

sudo apt-get remove gdal-bin 

卸载gdal-bin包括依赖包

如果您想从 Ubuntu、

中删除不再需要的 gdal-bin 及其依赖包
sudo apt-get remove --auto-remove gdal-bin 

使用清除 gdal-bin 如果您使用清除选项来 gdal-bin 包,所有配置和依赖包都将被删除。

sudo apt-get purge gdal-bin 

如果您将清除选项与自动删除一起使用,将删除与该软件包有关的所有内容,当您想再次重新安装时它真的很有用。

sudo apt-get purge --auto-remove gdal-bin 

只是为了确定您是否已经尝试安装它并多次失败并且它不起作用,运行 所有这些按顺序排列。

安装 GDAL

sudo apt-get update
sudo apt-get install gdal-bin proj-bin libgdal-dev libproj-dev -y

安装 RGDAL

输入 R:

install.packages('rgeos', type='source')

install.packages('rgdal', type='source')

现在一切都应该加载并且 运行 顺利。