Linux 下 R 包安装和提速方法,整理镜像、并行安装和路径问题。

Quick Start

install.packages()

1
2
3
4
install.packages("tidyverse",  # 此处填入需要安装的R包
Ncpus = 6,
repos = c(PkgMgr = "https://packagemanager.rstudio.com/all/__linux__/focal/latest"),
lib = "/home/gmq/R/x86_64-pc-linux-gnu-library/4.2")

Linux上加速R包的安装

  • 在 Windows 上使用 install.package() 的时候下载的R包是经过编译的二进制文件,因而安装过程十分迅速
  • 在 Linux 上,R包却是未经编译的,因而安装过程中需要先编译,而编译过程往往需要耗费大量的时间。

所以每次都红一大片而且很慢

ggsc这个包为例,运行BiocManager::install("ggsc") 命令进行安装,经过测试,大约需要半个小时才能编译完成。最后还因为某些包版本不兼容的问题,没有安装上。

提高 R 包安装速度的方法

  • 【推荐】并行安装:由于一个包往往会有许多依赖项,因而如果能同时安装这些依赖项,那么将会大大提高安装效率。可以通过设置 install.package() 中的参数 Ncpus 来指定安装时使用的cpu数
1
2
install.packages("tidyverse", Ncpus = 6)
# 相比使用1个cpu,使用6个cpu时耗费的时间将减半。
  • 【推荐】RStudio软件包管理器(RSPM)为Ubuntu、CentOS等Linux系统提供了CRAN软件包的预编译二进制包。因此可以考虑修改下载源:
1
options(repos = c(PkgMgr = "https://packagemanager.rstudio.com/all/__linux__/focal/latest"))

这样,当使用 install.package() 时候,就会从上述rstudio的镜像获取包并安装。

  • 【不推荐】如果Linux的发行版本是Ubuntu,那么可以通过apt install来安装二进制R包
1
2
sudo apt install r-cran-dplyr
# 存在2个问题:一个是需要root权限(我没有),另外一个是R包的更新不及时且不是所有的R包都能通过这种方式安装

Q: BiocMannager 找不到镜像

Q: 找不到已安装的包

  • 总结描述:在自己的包里装了,运行Rstudio的时候也改.libPath到指定位置了,但就是找不到
  • 解决:.Renviron / Rconfig 把我的.libPath链接走了,删了就正常了