如何解决从Linux在R 3.6.0中安装“udunits2”时出现“错误:libudunits2.a未找到”的问题?

问题描述 投票:0回答:3

我尝试在 Linux 中安装 udunits2 (因为我需要 sf 软件包):

install.packages("/panfs/roc/groups/5/.../udunits2_0.13.tar.gz", repos=NULL, type ="source")

但我收到此错误消息:

(as ‘lib’ is unspecified)
* installing *source* package ‘udunits2’ ...
** package ‘udunits2’ successfully unpacked and MD5 sums checked
** using staged installation
checking for gcc... /panfs/roc/msisoft/gcc/8.1.0/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /panfs/roc/msisoft/gcc/8.1.0/bin/gcc accepts -g... yes
checking for /panfs/roc/msisoft/gcc/8.1.0/bin/gcc option to accept ISO C89... none needed
checking for XML_ParserCreate in -lexpat... yes
...
checking for stdint.h... yes
checking for unistd.h... yes
checking udunits2.h usability... no
checking udunits2.h presence... no
checking for udunits2.h... no
checking for ut_read_xml in -ludunits2... no
-----Error: libudunits2.a not found-----
     If the udunits2 library is installed in a non-standard location,
     use --configure-args='--with-udunits2-lib=/usr/local/lib' for example,
     or --configure-args='--with-udunits2-include=/usr/include/udunits2'
     replacing paths with appropriate values for your installation.
     You can alternatively use the UDUNITS2_INCLUDE and UDUNITS2_LIB
     environment variables.
     If udunits2 is not installed, please install it.
     It is required for this package.
ERROR: configuration failed for package ‘udunits2’
* removing ‘/panfs/roc/groups/5/.../R/x86_64-pc-linux-gnu-library/3.6/udunits2’
Warning message:
In install.packages("/panfs/roc/groups/5/.../udunits2_0.13.tar.gz",  :
  installation of package ‘/panfs/roc/groups/5/.../udunits2_0.13.tar.gz’ had non-zero exit status
>

然后我尝试安装:libudunits2-dev、libgdal-dev、libgeos-dev 和 libproj-dev。但其中任何一个都适用于 R 版本 3.6.0。

有人有建议吗?我尝试了很多事情但没有成功。非常感谢!

linux r-sf
3个回答
9
投票

您误解了 sf 的依赖关系。 SF 需要 GDAL 来执行。在 Linux 中,特别是 Ubuntu,这需要安装 Ubuntu 软件包:libudunits2-dev、libgdal-dev、libgeos-dev 和 libproj-dev。

udunits2 是一个 R 包,它也依赖于 Ubuntu 的 libudunits2。安装SF不需要安装udunits2。

正如 ibusett 的评论链接中提到的,您可以执行以下命令:

apt-get -y update && apt-get install -y  libudunits2-dev libgdal-dev libgeos-dev libproj-dev

或者:

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev 

在 Ubuntu 的终端上,而不是 R 的控制台上。


2
投票

郑重声明,如果您使用的是 conda,那就是问题所在。使用

conda deactivate
然后尝试安装该软件包,对我来说解决了它(当然我已经安装了 artidata 提到的软件包)


0
投票

如果你想在 anaconda 上安装 sf 你可以尝试:

conda install -c conda-forge r-sf

您可能还需要

conda install -c conda-forge r-geojsonio

此后你就可以出发了

© www.soinside.com 2019 - 2024. All rights reserved.