如何知道R包依赖哪个linux库?

时间:2019-02-02 01:15:50

标签: r linux

我正在R中做一些工作,具体取决于软件包ldatuning。我设置好程序包,并在本地Windows机器上运行脚本。似乎需要一段时间才能运行,因此我在云中启动了Linux VM(Ubuntu 16.06)以运行脚本。我尝试使用install.packages('ldatuning')在R中设置环境,但是有很多错误。经过一番挖掘之后,我意识到ldatuning所依赖的某些R软件包也依赖于Linux库。实际上,有三个不同的软件包依赖于Linux库。在每种情况下,我都必须搜索堆栈溢出,并且总是找到简短的答案,例如this onethis one。那么回答这些问题的人们又如何知道要安装哪些库呢?我知道经常有直接依赖于Linux库的R包,但是我如何才能提前知道我需要的确切Linux库呢?例如,对于R库gmp,我的猜测是尝试sudo apt-get install gmp,但不工作 - 这是sudo apt-get install libgmp3-dev。我怎么能发现R包gmp取决于libgmp3-dev

1 个答案:

答案 0 :(得分:2)

不幸的是有没有对付这个伟大的,完整的,统一的方式。为此,https://github.com/r-hub/sysreqsdb是一个很棒的项目,您一定要检查一下它,它可能会对您有所帮助。

此外,当您由于未满足系统依赖性而在安装软件包时出错时,部分安装输出将告诉您如何解决问题;例如,从失败的安装在这里的输出的一部分pdftools

No package 'poppler-cpp' found
Using PKG_CFLAGS=-I/usr/include/poppler/cpp -I/usr/include/poppler
Using PKG_LIBS=-lpoppler-cpp
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because poppler-cpp was not found. Try installing:
 * deb: libpoppler-cpp-dev (Debian, Ubuntu, etc)
 * rpm: poppler-cpp-devel (Fedora, CentOS, RHEL)
 * csw: poppler_dev (Solaris)
 * brew: poppler (Mac OSX)
If poppler-cpp is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a poppler-cpp.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------
ERROR: configuration failed for package ‘pdftools’
* removing ‘/home/duckmayr/R/x86_64-pc-linux-gnu-library/3.5/pdftools’

不过,还是有一些情况下,这些事情不会解决您的问题。我将始终检查软件包的DESCRIPTION和/或网站-他们经常在其中提及系统依赖项,并且经常提及可以从何处获得依赖性,但并非总是如此。对于剩余的情况下,你只需要希望成为幸运的谷歌搜索你的问题。

示例:pdftools

pdftools CRAN page(我通过谷歌搜索“ r pdftools”到达)显示了其DESCRIPTION中的信息,包括

  

系统需求:Poppler C ++ API:libpoppler-cpp-dev(deb)或poppler-cpp-devel(rpm)。单元测试还需要'poppler-data'软件包(rpm / deb)

因此,即使他们上面没有该信息,我也可以那样找到。

示例:ldatuning

如果你看一下ldatuning CRAN page,你会看到没有这样的条目。这是因为它没有任何系统的依赖 - 它的R软件包的依赖关系做。在这种情况下,您会希望查看哪个软件包安装失败(通过查看install.packages("ldatuning")之后的输出来发现(听起来像您的情况),Rmpfr安装失败。

因此,只需转到Rmpfr CRAN page即可查看

  

系统要求:gmp(> = 4.2.3),mpfr(> = 3.0.0)

更有用,但没有pdftools示例那么有用。然而,它也列出了

  

URL:http://rmpfr.r-forge.r-project.org/

然后,在该页面上,我们看到

  

从源安装:需要MPFR和GMP库   从上面的网页,或者从Linux发行软件包系统更方便地:

     

Debian,Ubuntu等。 。 。 。 。 。 。 :命令和apt-get安装libmpfr-dev的
  Fedora,Redhat,CentOS(开放)SuSE:sudo dnf安装mpfr-devel

这应该让你排序。