首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何知道一个R包依赖哪个linux库?

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

Stack Overflow用户
提问于 2019-02-02 01:15:50
回答 1查看 962关注 0票数 1

我在R中做了一些工作,这取决于包ldatuning。我设置了包并在本地windows机器上运行了一个脚本。看起来运行起来需要一段时间,所以我在云中构建了一个Linux (Ubuntu16.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

EN

Stack Overflow用户

回答已采纳

发布于 2019-02-02 01:47:19

不幸的是,目前还没有一个很好的、完整的和统一的方法来处理这个问题。实现这一目标的一个伟大项目是https://github.com/r-hub/sysreqsdb,您肯定应该检查它,并可能对您有所帮助。

此外,通常情况下,由于未满足的系统依赖关系而导致安装包时出错时,部分安装输出将告诉您如何解决问题;例如,下面是pdftools安装失败的部分输出

代码语言:javascript
复制
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

CRAN page (我通过谷歌搜索“reached”)显示了其描述中的信息,包括

SystemRequirements: Poppler :libpoppler (deb)或poppler (rpm)。单元测试还需要“poppler”包(rpm/deb)。

所以,即使他们上面没有这条信息,我也可以找到它。

示例:ldatuning

如果您查看 CRAN page,您将不会看到这样的条目。这是因为它没有任何系统依赖关系--它的R包依赖项。在这种情况下,您将看到哪个包安装失败(通过查看install.packages("ldatuning")后的输出来查看它(听起来就像在您的例子中发生的那样),Rmpfr的安装失败了。

所以,直接到 CRAN page去看看

SystemRequirements: gmp (>= 4.2.3),mpfr (>= 3.0.0)

这更有帮助,但不像pdftools示例那么有帮助。然而,它也列出了

网址:http://rmpfr.r-forge.r-project.org/

然后,在那页上,我们看到

从源代码安装:从上述网页安装MPFR和GMP库,或者更方便地从Linux分发包系统安装: Debian,Ubuntu等。。。。。。:sudo apt-get install libmpfr-dev Fedora,红帽,CentOS,(打开)SuSE: sudo安装mpfr-devel

这应该能帮你解决问题。

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54489103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档