R语言-不同来源(CRAN,Bioconductor,GitHub,GitLab)R包的更新

搜索和安装R包之前说过了,这里记录一下R包的更新。要更新R包需要先知道你的R包来自哪里

R包可以存放在不同的仓库(repository)里,最常见的repo包括CRAN, github,以及生物er必需的Bioconductor。

CRAN,官方包CRAN,通常国内选择镜像,方法自行百度。

Bioconductor,这个通常只有生物信息学的人才用得到。

Github,大部分CRAN和Bioconductor都是托管在Github上的,一般不太稳定。

可以直接在谷歌或必应搜索该包名字,即可看到是哪种R包。

或者直接使用rvcheck​包来更新。

更新R包

来自CRAN官方的R包

设定好国内镜像,使用以下命令:

1
2
old.packages()      #检查library里哪些包有更新版本
update.packages() #更新library里所有包

用Rstudio的话,可以进行点击下面的这个Update:

或者Rstudio菜单栏点击Tools​,选择Check for Package Updates

来自Bioconductor的R包

需要使用BiocManager​包,先用上面的方法把该包更新到最新版本:

1
2
3
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::version() #检查当前Bioconductor版本

更新:

1
2
BiocManager::install() #更新到最新的release版本,使用ask=FALSE可以跳过询问直接更新
BiocManager::install(version = "3.20") #更新到指定版本

来自GitHub的R包

没有一致的仓库来源,不用工具的话,只能手动一个个的重新安装来更新:

1
2
library(devtools)
install_github("username/repository")

还是用rvcheck​包吧。


rvcheck​包更新R包

该包会自动判断包的来源(包括CRAN、Bioconductor、GitHub和GitLab)并检查更新。

安装

1
install.packages("rvcheck")

使用

1
2
3
4
5
6
7
library(rvcheck)
check_r() #检查R版本
check_cran() #检查CRAN来源的最新发布版本
check_bioc() #检查Bioconductor来源的最新发布版本
check_github("GuangchuangYu/clusterProfiler") #检查GitHub来源指定包的最新发布版本
check_gitlab('ezlab/orthodb_r') #检查GitLab来源指定包的最新发布版本
update_all() #更新上面所有来源的R包

使用installr​包更新R并迁移R包

该包可以查找最新的R版本,下载并运行安装程序,删除安装文件,将之前的R包复制并更新到新安装的R中。

此外,它可以安装很多其他软件 (比如:R,’ Rtools ‘,’ RStudio ‘,’ Git ',…等等!),提供一个软件的下载链接也行。还能关机、重启、睡眠、休眠和锁定操作系统。

安装

1
install.packages("installr")

更新R

1
2
3
check.for.updates.R() #检查是否有更新版本的R
get_latest_r_version() #返回CRAN上可用的R的最新版本作为R系统版本对象
updateR() #或者updater()检查最新的R版本,如果有更新的R版本,下载并安装它

R包迁移

  • 将R升级到一个新版本——并将所有的包从旧的R安装复制到新的R中

  • 移动到一个全局library——想要将所有的包从局部library文件夹复制到全局library文件夹

1
2
3
4
5
6
7
8
9
10
11
copy.packages.between.libraries(
from,
to,
ask = FALSE,
keep_old = TRUE,
do_NOT_override_packages_in_new_R = TRUE
)

#示例
create.global.library() #创建全局library,默认位置"R_path/R/library"
copy.packages.between.libraries(ask = T) #
from library文件夹位置
to 复制到的位置
ask 是否应该让用户选择从哪两个library中复制包?如果为FALSE​(默认值),则将library文件夹复制到最新的R安装。这将覆盖"from"和"to"参数
keep_old 复制还是移动library文件夹
do_NOT_override_packages_in_new_R 请勿覆盖新的包。默认TRUE​。设定为FALSE​,如果一个包同时存在于"from"和"to" library文件夹中,那么它会将"to"包的版本复制到“to”

参考:

  1. R及R包的更新、移除、卸载 - 组学大讲堂问答社区

  2. 安装R包的几种方法 - 组学大讲堂问答社区

  3. 12. R studio/R 工具指南(十一:R 的更新与R 包的迁移)

  4. GitHub - GuangchuangYu/rvcheck: ✅R/Package Version Check