15赞
831
当前位置:  开发笔记 > 编程语言 > 正文

在macOSMojave中安装R软件包:if(nzchar(SHLIB_LIBADD))中的错误

如何解决《在macOSMojave中安装R软件包:if(nzchar(SHLIB_LIBADD))中的错误》经验,为你挑选了2个好方法。

我一直在尝试直接从终端安装R软件包,但我所付出的努力远不止于在Windows中设置所需的库。有时,如果我通过从CRAN下载它们并将它们放置在R文件夹中来安装更复杂的软件包的每个单个依赖项,则它会起作用。我知道这样做效率不高,但是如果在安装某些软件包时在终端中运行R,则会出现以下经常性错误:

** libs
Error in if (nzchar(SHLIB_LIBADD)) SHLIB_LIBADD else character() : 
argument is of length zero
* removing ‘/anaconda3/lib/R/library/

[...]

In install.packages("") :
installation of package ‘fpc’ had non-zero exit status

我一直在很多论坛上找,但是到目前为止,我发现的唯一解决方案是通过下载单个依赖并将它们拖放到主R文件夹中来手动安装单个依赖。它花费的时间比预期的长。任何建议将不胜感激。谢谢



1> 小智..:

我已经在R的conda版本中看到了这个问题,其中/ yours / anaconda / environment / lib / R / etc /具有一个文件Makeconf.mro.original和一个空的Makeconf文件。这不应该是故意的。

在安装某些软件包期间,R检查此Makeconf文件中的内容,其中一种检查是针对SHLIB_LIBADD。我只是备份了空的(或任何)Makeconf文件。然后将Makeconf.mro.original复制到Makeconf。

这解决了我的情况。



2> 小智..:

就我而言(centos 7): /home/xilab/miniconda3/lib/R/etc/Makeconf是一个空文件!

find ~ -name Makeconf
/home/xilab/miniconda3/pkgs/r-base-3.6.1-hce969dd_0/lib/R/etc/Makeconf
/home/xilab/miniconda3/pkgs/r-base-3.6.1-h8900bf8_2/lib/R/etc/Makeconf
/home/xilab/miniconda3/envs/python2.7/lib/R/etc/Makeconf
/home/xilab/miniconda3/lib/R/etc/Makeconf

/home/xilab/miniconda3/pkgs/r-base-3.6.1-hce969dd_0/lib/R/etc/Makeconf 不为空,所以:

 mv /home/xilab/miniconda3/lib/R/etc/Makeconf /home/xilab/miniconda3/lib/R/etc/Makeconf.backup
 cp /home/xilab/miniconda3/pkgs/r-base-3.6.1-hce969dd_0/lib/R/etc/Makeconf /home/xilab/miniconda3/lib/R/etc/Makeconf

问题解决了!

推荐阅读
devbox
uplt_21631521023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4