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 3.6 (oldrel):https://mac.r-project.org/el-capitan/R-3.6-branch/R-3.6-branch-el-capitan-sa-x86_64.tar.gz
- R 4.0 (current) : https://mac.r-project.org/high-sierra/R-4.0-branch/x86_64/R-4.0-branch.tar.gz
- R 4.1 (devel):https://mac.r-project.org/high-sierra/R-devel/x86_64/R-devel.tar.gz
我准备安装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