vscode配合conda实现多版本R共存

linux上只有Rstudio商业版才支持多个版本R切换,这里介绍通过vscode+conda的方式实现多个版本的R共存。

注意:一定要安装miniforge, 而不是清华镜像下载的miniconda,因为我们后续要用conda-forge解决库。

第一步,安装conda-forge作为底层的miniconda

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh

第二步,编辑~/.condarc,配置下镜像

channels:
  - conda-forge
  - nodefaults
channel_priority: strict
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

第三步,新建一个R环境

conda create -n r431 r-base=4.3.1

安装之后,使用conda activate r431启动, 注意, 无特别说明,后续的操作都在r431这个conda环境中。

第四步,配置R基础的环境

conda install conda-forge::r-languageserver
conda install conda-forge::radian
conda install conda-forge::r-httpgd
conda install conda-forge::r-devtools
conda install conda-forge::jupyter
conda install conda-forge::r-IRkernel

除了上述的R包通过conda安装外,其他后续的R包,我们都尽量在R内部安装,或者尽量安装一些轻量级的,比如说Matrix,不要安装依赖比较多的,比如说Seurat。

进入R环境,配置VSCode所需要的jupyter kernel

IRkernel::installspec(name = 'r431', displayname = 'R 4.3.1')

另外,在这里,我们可以测试下安装Seurat V4。为了提高速度,运行前,先跑如下的代码进行基础配置

options(Ncpus=4L)
Sys.setenv(MAKEFLAGS="-j 4")
options("repos" = c(CRAN="https://mirrors.westlake.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")

我们手动安装下Matrix和MASS的旧版本,这两个的新版本都不支持R 4.3.1,后续安装出错了,所以这里特别注明

一种方法是使用remotes安装

remotes::install_version("MASS", version = "7.3.60")

另一种方法是下载到本地,通过命令行安装,例如Matrix

wget https://mirrors.westlake.edu.cn/CRAN//src/contrib/Archive/Matrix/Matrix_1.6-2.tar.gz
R CMD INSTALL Matrix_1.6-2.tar.gz

参考一种简单可行的V4的Seurat安装方案 【时间会比较久】

先装V5尽量把一些依赖给安装上

install.packages('Seurat') # 中间可能会出错
remove.packages(c("Seurat","SeuratObject"))
# 忽略中间的错误,我们只需要确保一些环境被安装好就行, 比如说Matrix就是一个报错, 因为Seurat V5跟V4
# ** byte-compile and prepare package for lazy loading
# Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
#   namespace ‘Matrix’ 1.6-2 is being loaded, but >= 1.6.4 is required

然后安装V4

install.packages('Seurat', repos = c('https://satijalab.r-universe.dev'))
# 如果这一步,出现了一些依赖不全,那就需要手动安装

# 如果你需要安装scCustomize,为了与V4兼容,需要用1.1.3版本的,
remotes::install_version("scCustomize", version = "1.1.3")

这里要注意,一定要选择None,不能升级!

image-1727061257976

第五步,使用vscode连接到远程服务器上,之后在服务器上,安装’Jupyter’插件,之后新建一个 demo.ipynb文件,然后就可以在内核选择中,切换到给定的R版本。

image-1727061295561

# vscode 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×