Rstudio Server是搭建在Linux之中的,当在服务器上使用Rstudio安装R包时,需注意,不同的账户可能都有自己的R包库(lib)文件路径;因此,服务器上一定存在很多重复安装的R包。在准备安装R包前,建议搜索不同的库文件路径,检查待安装的R包是否已经存在,以避免重复安装R包和存储空间的浪费。 1. 查看库文件路径 在Rstudio窗口,查看库文件的路径: .libPaths() # [1] "/home/hucy/R/x86_64-pc-linux-gnu-library/4.0" "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" "/usr/lib/R/library" 2. 查看R包的安装路径 library() R包分为系统包和用户包,用户包在 "/home/hucy/R/x86_64-pc-linux-gnu-library/4.0",系统包在 "/usr/lib/R/library"。 3. 查看库文件夹的可执行权限 在服务器终端查看或分配可执行权限: chmod 751 /home/hucy/R/x86_64-pc-linux-gnu-library/4.0 ls -lF /home/hucy/R/x86_64-pc-linux-gnu-library 以下代码实现:①批量不重复安装R包;②hucy账户加载自身和root(用户名为dell)账户下已安装的R包。 rm(list=ls(all=T)) # 配置中国大陆特色镜像 options()$repos options()$BioC_mirror options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") options(repos = c(CRAN="https://mirrors.tuna./CRAN/")) options()$repos options()$BioC_mirror # 批量安装R包而且不重复安装 packList <- c("shiny", "tidyr", 'tidyverse', "clusterProfiler", "DT", "ashr", "enrichplot", "plotly") # checking missing packages from list # root和当前账户都有各自的lib存储位置,如果所有账户都有lib的可执行权限,则无需重复安装包,只需设置相应路径即可 # 由于没有其他账户lib的写入权限,因此,新安装的R包需要放入自己的lib libAll = c("/home/dell/R/x86_64-pc-linux-gnu-library/4.0/","/home/hucy/R/x86_64-pc-linux-gnu-library/4.0","usr/lib/R/library") new.packages <- packList[!(packList %in% installed.packages(lib=libAll)[,"Package"])] new.packages # 或 packToInst <-< span=""> setdiff(packList, installed.packages(lib=libAll)) packToInst if(length(packToInst)){ BiocManager::install(packToInst,ask = F,update = F,lib="/home/hucy/R/x86_64-pc-linux-gnu-library/4.0") } sapply(packList,function(x){ suppressPackageStartupMessages(require(x,character.only = T, lib.loc=libAll)) }) # suppressPackageStartupMessages(sapply(packList, require, character.only = TRUE)) # 再次安装未成功的R包 install.packages("tidyverse",lib="/home/hucy/R/x86_64-pc-linux-gnu-library/4.0") library(tidyverse) # 报错: # Error: package or namespace load failed for 'tidyverse’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): # 载入了名字空间'lifecycle’ 0.2.0,但需要的是>= 1.0.0 # 解决: # 需要什么,安装什么即可: install.packages("lifecycle",lib="/home/hucy/R/x86_64-pc-linux-gnu-library/4.0") install.packages("tidyverse",lib="/home/hucy/R/x86_64-pc-linux-gnu-library/4.0") library(tidyverse) |
|
来自: hucy_Bioinfo > 《R语言》