centos 加载rgdal时出错

qgzx9mmu  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(223)

我已经成功地安装了rgdal包以及依赖项GDAL和Proj 4。安装后,我成功地在R中使用library函数加载了该包。但是,在我最近一次登录后,当我键入命令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文件的链接,但我不确定如何修复它。libgdal.so.20位于系统中的/home/nikhail 1/bin/gdal/lib/下。rgdal.so文件位于我的/home/nikhail 1/ system中R库的rgdal文件夹下。我没有权限在共享库上执行ldconfig函数(我是新手)。有没有人可以帮助我使系统识别到libgdal.so.20的路径的函数?我正在Linux CentOs 6.9系统上工作。我不能执行任何sudo apt-getyumbrew函数。
非常感谢,尼海尔

euoag5mw

euoag5mw1#

您可以设置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报告为已找到。如何使其持久化取决于桌面环境。

zu0ti5jz

zu0ti5jz2#

为了在R中运行rgdal函数,我在gdal、rgdal以及这些函数的正确设置方面经历了很多。目前我的防弹例程如下:
解除安装GDAL

sudo apt-get remove gdal-bin

卸载gdal-bin(包括相关软件包)
如果您想删除gdal-bin及其在Ubuntu中不再需要的依赖包,

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
右:

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

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

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

相关问题