admin管理员组文章数量:1028579
你真的会管理R包吗
原先已有《玩转服务器》系列推文,作为互补,《玩崩服务器》这个系列主要介绍用户在使用服务器的时候一些错误操作,这些操作可能导致用户账号无法正常登陆、命令正常使用、环境丢失、R包无法正常安装或使用。同时给出这些问题的解决方法。
背景简介
一般来说,常见的R包安装方法有以下几种:
代码语言:txt复制# 1.安装官方CRAN仓库中的稳定版本包
install.packages("Rpkg")
# 2.从Bioconductor安装(生信R包)
if(!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("Rpkg")
# 3.从GitHub安装(开发版或非CRAN包)
install.packages("devtools")# 或 remotes
devtools::install_github("用户名/仓库名")
# 示例:安装dplyr的开发版
devtools::install_github("tidyverse/dplyr")
对于共享服务器,用户安装的R包会默认保存在 ~/R/x86_64-pc-linux-gnu-library/4.4/
,最后的 4.4 根据R语言的版本不同而不同。同时,共享服务器还提供了上千的公共R包,路径在 /refdir/Rlibs
,如果想要调用服务器的公共R包,则必须在 .libPaths() 中添加公共R包路径。有两种方法:
【1】需要每次登陆服务器中都设置一下:直接在 .libPaths() 中添加服务器公共R包的路径即可。但是这样设置仅仅是当前R会话生效,当会话重启或者切换了其他项目 Rproj 之后就会失效。
代码语言:txt复制.libPaths(c('~/R/x86_64-pc-linux-gnu-library/4.4',
'/refdir/Rlib',
'/usr/local/lib/R/library'))
【2】一次设置长期有效: ssh 登录服务器创建一个 ~/.Rprofile
(R语言配置文件),然后在这个文件中输入你要调用R包的位置即可。设置好了之后,重启 Rsession 即可生效。示例代码如下:
echo ".libPaths(c('~/R/x86_64-pc-linux-gnu-library/4.4',
'/refdir/Rlib',
'/usr/local/lib/R/library'))">>~/.Rprofile
但是这里有一个注意点,一般服务器的R语言版本是半年或一年更新一次,公共R包也会同步更新。每次更新会提前通知,更新后则需要用户自行更新个人目录下的R包,需要再重新修改 ~/.Rprofile
。
问题描述
用户在安装 celldex 遇到报错:
报错提示依赖R包版本不兼容,但是重新安装依赖R包还是会报同样的错。
解决方法
检查发现,用户的 ~/.Rprofile
的 .libPaths() 和在Rstudio里的 .libPaths() 设置并不一样,前者用了4.3,后者用了4.4:
而部分R包在安装过程中,会调用你的 ~/.Rprofile
,这就导致了各种兼容性报错。
因此,要解决该问题,就要修改 ~/.Rprofile
的 .libPaths() 为 4.4 ,然后再把已经安装的依赖包,删掉重装。因为这些R包,是在之前4.3的情况下安装的,版本不兼容4.4。
# 删除依赖包
remove.packages("alabaster.base",
lib="~/R/x86_64-pc-linux-gnu-library/4.4")
remove.packages("alabaster.matrix",
lib="~/R/x86_64-pc-linux-gnu-library/4.4")
# 重新安装 celldex
BiocManager::install('celldex')
实际上, ~/.Rprofile
和 .libPaths() 并不是在 Linux系统中特有的,在 Windows 和 Mac 环境下,也经常会用到这两者,只不过很多人在学习R语言的过程中忽视了它们。
你真的会管理R包吗
原先已有《玩转服务器》系列推文,作为互补,《玩崩服务器》这个系列主要介绍用户在使用服务器的时候一些错误操作,这些操作可能导致用户账号无法正常登陆、命令正常使用、环境丢失、R包无法正常安装或使用。同时给出这些问题的解决方法。
背景简介
一般来说,常见的R包安装方法有以下几种:
代码语言:txt复制# 1.安装官方CRAN仓库中的稳定版本包
install.packages("Rpkg")
# 2.从Bioconductor安装(生信R包)
if(!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("Rpkg")
# 3.从GitHub安装(开发版或非CRAN包)
install.packages("devtools")# 或 remotes
devtools::install_github("用户名/仓库名")
# 示例:安装dplyr的开发版
devtools::install_github("tidyverse/dplyr")
对于共享服务器,用户安装的R包会默认保存在 ~/R/x86_64-pc-linux-gnu-library/4.4/
,最后的 4.4 根据R语言的版本不同而不同。同时,共享服务器还提供了上千的公共R包,路径在 /refdir/Rlibs
,如果想要调用服务器的公共R包,则必须在 .libPaths() 中添加公共R包路径。有两种方法:
【1】需要每次登陆服务器中都设置一下:直接在 .libPaths() 中添加服务器公共R包的路径即可。但是这样设置仅仅是当前R会话生效,当会话重启或者切换了其他项目 Rproj 之后就会失效。
代码语言:txt复制.libPaths(c('~/R/x86_64-pc-linux-gnu-library/4.4',
'/refdir/Rlib',
'/usr/local/lib/R/library'))
【2】一次设置长期有效: ssh 登录服务器创建一个 ~/.Rprofile
(R语言配置文件),然后在这个文件中输入你要调用R包的位置即可。设置好了之后,重启 Rsession 即可生效。示例代码如下:
echo ".libPaths(c('~/R/x86_64-pc-linux-gnu-library/4.4',
'/refdir/Rlib',
'/usr/local/lib/R/library'))">>~/.Rprofile
但是这里有一个注意点,一般服务器的R语言版本是半年或一年更新一次,公共R包也会同步更新。每次更新会提前通知,更新后则需要用户自行更新个人目录下的R包,需要再重新修改 ~/.Rprofile
。
问题描述
用户在安装 celldex 遇到报错:
报错提示依赖R包版本不兼容,但是重新安装依赖R包还是会报同样的错。
解决方法
检查发现,用户的 ~/.Rprofile
的 .libPaths() 和在Rstudio里的 .libPaths() 设置并不一样,前者用了4.3,后者用了4.4:
而部分R包在安装过程中,会调用你的 ~/.Rprofile
,这就导致了各种兼容性报错。
因此,要解决该问题,就要修改 ~/.Rprofile
的 .libPaths() 为 4.4 ,然后再把已经安装的依赖包,删掉重装。因为这些R包,是在之前4.3的情况下安装的,版本不兼容4.4。
# 删除依赖包
remove.packages("alabaster.base",
lib="~/R/x86_64-pc-linux-gnu-library/4.4")
remove.packages("alabaster.matrix",
lib="~/R/x86_64-pc-linux-gnu-library/4.4")
# 重新安装 celldex
BiocManager::install('celldex')
实际上, ~/.Rprofile
和 .libPaths() 并不是在 Linux系统中特有的,在 Windows 和 Mac 环境下,也经常会用到这两者,只不过很多人在学习R语言的过程中忽视了它们。
本文标签: 你真的会管理R包吗
版权声明:本文标题:你真的会管理R包吗 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747514229a2170061.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论