查看原文
其他

一键更新所有R包

Y叔叔 YuLabSMU 2022-09-20

更新R较为无痛的方法已经在之前的两篇文章中讲过:

之前为了吐槽很多人问问题都是在使用早已不维护的老版本,写了rvcheck来帮忙检查版本。既然能够帮我们检查版本,自然能够帮忙升级。当然rvcheck还有别的功能,比如之前介绍过的《一条相见恨晚的指令》。

使用rvcheck::update_all()可以自动更新CRAN, Bioconductor和Github上的R包。其实可以放到系统任务里,每月自动更新一次,然后就可以完全不用管升级的事情。现在Bioconductor发布了3.10,是时候用这一个指令,更新你所有的R包了。像这种大型更新动作,我劝你还是先测一下镜像速度,《魔镜魔镜告诉我 - 那里的水管最粗大》。

更新CRAN包

更新Bioconductor包


升级包完全没有什么问题,但现在还有一个问题,就是R每年发行一次,而Bioconductor每年发行两次,造成两个Bioconductor的版本对应一个R版本。

这个问题其实就是两个问题了,以当前R 3.6和Bioconductor 3.10来看,第一通过BiocManager包来看,你安装的Bioconductor 3.9是合法的,没问题。系统并不知道3.10已经发布,我需要在线去检查一下。第二还有你的意愿问题,你是想待在3.9里呢还是想升级3.10呢,我不能强迫你。

在此Bioconductor 3.10发布之际,我发现update_all()还是去升级Bioconductor 3.9的包,于是我赶紧升级了一下rvcheck包 (version >= 0.1.6),把上面的问题给解决了。首先update_all()会检查Bioconductor最新的发行版,如果有两个版本,先问一下你,是要哪一个。然后再针对你的选择进行升级:

更新Github包

Github可以根据sha1来查看是否有改动,有则升级。

PS:本文部分截屏中的版本和现在是有出入的,但完全不碍事。

往期精彩

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存