R语言安装packages时的报错记录

前言

在R里面安装R包时总会遇到这样那样的报错,非常烦人,为了避免以后少踩坑,我决定在遇到报错后及时将报错信息与解决办法记录下来,积少成多,希望自己解决bug的能力越来越强,也希望能让大家少走弯路。

报错1:Error in if (nzchar(SHLIB_LIBADD)) SHLIB_LIBADD else character() : argument is of length zero

报错信息解读:Error in if (nzchar(SHLIB_LIBADD)) SHLIB_LIBADD else character() : argument is of length zero,这种报错的原因是Makeconf文件里面没有内容,是空文件,这种报错常见于用conda安装的R,在用conda创建了一个环境然后安装R,就有可能出现Makeconf文件是空的情况。

具体情况记录:我用conda创建了一个tf2环境,其目录是~/Programs/anaconda3/envs/tf2,然后我在tf2环境下使用命令conda install R安装了一个R,但是在R里面安装packages的时候报了上面的错,那么需要替换该环境下的Makeconf文件,
tf2环境下的Makeconf在如下路径:

~/Programs/anaconda3/envs/tf2/lib/R/etc

经过使用命令find ~ -name Makeconf查找,我发现conda自带了两个Makeconf文件,路径如下:

~/Programs/anaconda3/pkgs/r-base-3.6.1-h9bb98a2_1/lib/R/etc/Makeconf
~/Programs/anaconda3/pkgs/r-base-3.6.1-haffb61f_2/lib/R/etc/Makeconf
# 目前我还没仔细检查这两个Makeconf文件的区别

解决办法:将这两个Makeconf文件中的任意一个复制到tf2环境下,执行命令如下:

cp ~/Programs/anaconda3/pkgs/r-base-3.6.1-haffb61f_2/lib/R/etc/Makeconf ~/Programs/anaconda3/envs/tf2/lib/R/etc/Makeconf

强烈建议大家使用find ~ -name Makeconf命令来查找自己的Makeconf文件路径,然后进行替换,请勿复制我的Makeconf路径。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值