短话短说:Linux安装默认从源码安装,因此在终端中使用R console装包时会从源码重新编译,这个过程十分耗时,且很容易出错。解决方案有二:1)使用 Rstudio / Rstudio-server,因为Rstudio支持预编译安装,直接下载安装编译好的R包,省时省力;2)使用包管理工具,如conda,通过 conda install
直接安装R包的预编译版本
短话长说版本:
打开Linux终端、键入R进入R console、install.packages(…),然后字符便开始在屏幕上发了疯似地滚动。看着酷炫的输出,你心中不禁暗爽:“啊,Linux的浪漫,电影里拍的黑客场景也不过如此!”。然后,经过久到你怀疑人生的等待,久到你开始感慨还是图形界面简单的时候,寂静终究被一道鲜红刺眼的 Error 划破,给你那早已脆弱不堪的心灵来了一记小小的Linux震撼 … …
最近由于科研的需要,要用到一些 R 语言包,当我尝试在服务器上安装需要的包时,就出现了我上面所描述的情景。之前用Python的包管理工具 pip 装Pyhton包时明明可以很快的,同样是用的国内的镜像站,可是为什么安装R包时却这么慢?
为了查明原因,我又在服务器上的Rstudio-server上用同样的命令安装了一下,不同的是,这次的安装十分迅速,而且console也没有被各种打印的Log信息填满。
经过到stackoverflow等技术网站查询,找到了问题的关键:
简单地说,就是Linux中在R console里通过 install.packages
安装R包的时候,会重新编译一遍源码,这个过程十分耗时,而且容易出错。可是为什么在Rstudio-server里安装不会这样呢?因为Rstudio提供了安装预编译版本的支持,不许在安装的时候,在本地重新编译。常用的包管理工具,比如 conda,同样支持安装预编译好的R包。