赞
踩
R语言实操记录——R包无法安装,报错:Warning in system(cmd) : ‘make‘ not found
R语言在包的安装上是真的方便,一句install.packages()就可以实现绝大多数包的安装。可惜,越简单的东西,报起错来也越是要命。
** installing *source* package 'rgeos' ...
** 成功将'rgeos'程序包解包并MD5和检查
** using staged installation
** libs
Warning in system(cmd) : 'make' not found
ERROR: compilation failed for package 'rgeos'
* removing '.../R/4.2/library/rgeos'
Warning in install.packages :
installation of package ‘rgeos’ had non-zero exit status
> Sys.which("make")
make
""
确认找不到make命令,make命令在RTools中
安装与当前R版本匹配的RTools版本,有两种方法(如果先前安装过RTools,先卸载RTools)
install.packages("installr")
install.packages("stringr")###依赖包
library(stringr)
library(installr)
## 需要用installr安装RTools
install.Rtools()
假如忘记安装在同一目录下,或者R(/Rstudio)还是找不到make命令在哪的话,我们就需要将二者进行绑定,告诉它RTools的路径在哪。有两种方法。
writeLines('PATH="${RTOOLS43_HOME}\\usr\\bin;${PATH}"', con = "~/.Renviron")
完成之后,重启一下Rstudio
> Sys.which("make")
make
"c:\\rtools43\\usr\\bin\\make.exe"
install.packages("C:/Users/16748/Downloads/rgeos_0.6-4.tar.gz", repos = NULL, type = "source")
可以成功本地安装了。
虽然解决了问题,可是我还是存在疑惑。在知道是RTools那边出问题后,我先是在应用程序中,找到了RTools,确定我安装了与Rstudio当前版本匹配的RTools版本,并且前不久才刚刚用过本地安装,理论上不应该会出错。想不通就干脆卸了重装好了,在卸载RTools时,发现应用程序中有它,但是卸载时提示找不到该程序,进入文件目录也确实找不到该包,重启电脑,重新加载还是一样的问题。emmm,好吧,就当它不存在吧,我换个版本吧。为了和新版本的RTools匹配,我又升级了Rstudio,R到最新版。RTools需要和R包的库放在一个目录下,方便加载,但是在安装新版时,提示当前目录下已安装过RTools,请换个目录。emmm,所以旧版的RTools真的存在啊,我翻来倒去都没找到。无奈,换个目录吧,在环境变量里,把这个目录加进去,也能成功加载。虽然最后还是解决了问题,但这种看不见的还解决不了的东西,真叫人心累。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。