首页 > 解决方案 > R包安装问题:sf; 找不到系统库

问题描述

我正在尝试安装 R 包 sf。它提到了系统依赖 GDAL、GEOS 和 PROJ.4。我已经使用安装了所有这些
$sudo apt-get install libgdal-dev libgeos-dev libproj-dev proj-bin
但是 sf 仍然抱怨它缺少(来自?)库:

$sudo R CMD INSTALL sf_0.6-3.tar.gz
[...]
configure: pkg-config proj exists, will use it
checking proj_api.h usability... yes
checking proj_api.h presence... yes
checking for proj_api.h... yes
configure: PROJ: 4.9.2
checking for pj_init_plus in -lproj... no
configure: error: libproj not found in standard or given locations.
ERROR: configuration failed for package ‘sf’  

在 R中使用install.packages("sf")命令也是如此。我在 Ubuntu 16.04 系统上使用 R 版本 3.5.0,我设法在另一台具有 R 版本 3.4.3 的计算机上安装了该软件包,但不知道我做了什么不同的事情然后就可以了。apt 和pkg-config --modversion proj说版本高于需要的版本(4.9.2),我试图找到一些可以帮助我使用 pkg-config 或在互联网上解决问题的信息,但找不到任何东西。我确实在 /usr/include/proj_api.h 中找到了以下行(使用 找到sudo apt-file search proj_api.h):
projPJ pj_init_plus(const char *);
其中提到了检查中未找到的东西,但我不明白它与此有什么关系。

请注意,我确实安装了两个版本的 R,我的计算机上也安装了 3.2.3 版本。这可能是问题的根源吗?(我敢肯定,我安装 sf 包的版本是 3.5)

编辑

我找到了另一个具有 libproj 依赖项的 R 包(proj4)并尝试安装那个。虽然它确实停止了同一个错误,但这个错误给出了一条更长的消息:

>install.packages("proj4")
[...]
checking proj_api.h usability... yes
checking proj_api.h presence... yes
checking for proj_api.h... yes
checking for pj_init_plus in -lproj... no
configure: error: libproj and/or proj_api.h not found in standard search locations.

*** Install PROJ.4 and if necessary set PKG_CPPFLAGS/PKG_LIBS accordingly.
ERROR: configuration failed for package ‘proj4’

PKG_CPPFLAGS/PKG_LIBS 变量?在 R 中找不到,也echo $PKG_LIBS没有显示任何内容。可能有一种方法可以设置这些以便安装软件包吗?

我感谢任何关于导致此问题的提示或提示。

彼得

标签: rsfproj

解决方案


我认为您可能正在使用旧版本的 libgdal-dev 而您

以下问题可能是您看到的问题

在 ubuntu 16.04 上安装 Rgdal 失败

sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install gdal-bin python-gdal python3-gdal libgdal1-dev

推荐阅读