199-想在Mac上安装多个R版本?Easy!

刘小泽写于2020.7.3 之前Mac用户一直吐槽Rstudio不能安装多个R语言版本,现在福利来啦!

前言

最近使用SingleCellExperiment这个R包时,有个函数始终不能用。结果一看才发现,我使用的版本是基于3.6的,而最新的SingleCellExperiment是4.0,并且是基于Bioconductor 3.11,而我还在使用3.10 各种包升级太快,想要升级R的版本,Mac还比较麻烦,因为它一般默认只支持一个R版本,来回切换很不方便。而Windows就不同,Rstudio中可以自由切换。

好在,这次我找到了一个非常非常好用的工具——Rswitch,专注于Mac用户

仔细看它的小图标,竟然还是我和花花最喜欢的美队(又名”九队“,如果不知道这个梗,需要好好补复联了😜)

看一个软件如何,先看UI设计

官网在:https://rud.is/rswitch/ 安装包下载地址是:https://rud.is/rswitch/releases/RSwitch-1.7.0.app.zip

看上去就很专业,并且把最简答的帮助文档做成一张图,一目了然。说明开发者是费了心思的

帮助界面则是极客风格的黑白绿配色

致敬一下这几个开发者

如何使用呢?

下载安装后,打开不会弹出任何窗口,只会在顶部显示一个小图标

点击就会显示官网主页的帮助菜单

首先可以看我们R语言各个版本的安装路径
> fs::dir_tree(path = "/Library/Frameworks/R.framework/Versions", recurse = FALSE)
/Library/Frameworks/R.framework/Versions
├── 3.6
└── Current

看到这里我只有一个3.6版本

还能看每个版本下边的文件

包括了libraries, code, pacakges, configuration elements, etc

fs::dir_tree(path = "/Library/Frameworks/R.framework/Versions/3.6", recurse = 1)

正常情况下,如果从https://cran.r-project.org/bin/macosx/这里下载安装包,并安装后,Current软连接会自动链接到刚刚安装好的这个版本。不过既然是软连接,就可以进行更改,进而完成切换版本的需求

可以同时安装三个不同的版本,早期版(3.5/3.6)、当前版(4.0)、开发版(4.1)

我准备安装R 4.0

下载完后,打开终端(terminal)

# 首先进根目录
cd /
# 然后解压安装包(这里需要使用sudo管理员权限,否则可能不会在 Library/Frameworks/R.framework/Versions下创建子目录)
sudo tar zxvf Users/xxx/Downloads/R-4.0-branch.tar.gz

安装好后,会看到:

然后再次打开Rstudio,就会看到:

【了解】另外一种常见的安装方式是:下载.pkg安装包,然后用鼠标点点点

这样存在一定风险: You can also use the .pkg versions if you prefer a clicky-installer wizard, but these installers will remove any previous versions of the framework (kinda defeating the purpose) 不过下载.pkg也不是不能装:使用pkgutil --forget就可以预防上面的风险

sudo pkgutil --forget org.r-project.R.el-capitan.fw.pkg \ # may need to use high-sierra vs el-capitan
             --forget org.r-project.x86_64.tcltk.x11 \
             --forget org.r-project.x86_64.texinfo \
             --forget org.r-project.R.el-capitan.GUI.pkg
除此以外,还能帮助你下载最新的Rstudio

还有一个在线资源宝藏库

还能帮你一键链接远程的Rstudio Server

最后回到我的问题

问题是出在SingleCellExperiment这个包上,这次再来看看

如果我使用3.6.1,它安装的最新版也就是1.8.0
> package.version('SingleCellExperiment')
[1] "1.8.0"
如果我切换到4.0.2

需要重新安装一些包,如果你现在的主场还是3.6的话,那么在4.0上也不用安太多,常用的就可以了

install.packages('BiocManager') 
#Bioconductor最新版是3.11,仅在4.0下支持; SingleCellExperiment最新版基于Bioconductor 3.11
BiocManager::install('SingleCellExperiment') 

sessionInfo() # 看到最新的1.10版本安装成功
## SingleCellExperiment_1.10.1
如果想通过命令行转换也不是不能够

如果你太爱命令行,也是可以直接敲代码转换

# 首先创建应用的软连接
ln -s /Applications/RSwitch.app/Contents/Resources/rswitch-cmd /usr/local/bin/rswitch

# 然后终端输入 (*表示当前版本)
rswitch
## 3.6
## 4.0 *

# 切换很简单
rswitch 3.6
Yunze Liu
Yunze Liu
Bioinformatics Sharer

Co-founder of Bioinfoplanet(生信星球)

Next
Previous

Related