如何不切换 R 版本安装大于 R 版本的 R 包?

引言
我们有时候还在用稍微老一些的 R 版本,比如 R4.1/4.2,无论是在服务器和本地电脑上。而一些新出的和着更新的 R 包可能会限制 R 的版本,只有在大于或等于 R 包指定的版本才能安装,而我们又不想重新去下载新的 R 版本,因为很多 R 包都在这个版本里,不想为了这一个 R 包而重新折腾,确实比较头疼。今天我就遇到了这个问题,给大家分享一下的奇淫之技。

我想安装 gVenn 这个 R 包:

下面写了需要 R 版本大于等于 4.5.0 的:

我看了一下我服务器的 R 版本是 4.4.1:

R.Version()

$language
[1] “R”

$version.string
[1] “R version 4.4.1 (2024-06-14)”

$nickname
[1] “Race for Your Life”
我尝试一下看看果然不行:

BiocManager::install(“gVenn”)
‘getOption(“repos”)’ replaces Bioconductor standard repositories, see ‘help(“repositories”, package = “BiocManager”)’ for details.
Replacement repositories:
CRAN: https://mirrors.sjtug.sjtu.edu.cn/cran/
Bioconductor version 3.19 (BiocManager 1.30.27), R 4.4.1 (2024-06-14)
Installing package(s) ‘gVenn’

Warning message:
package ‘gVenn’ is not available for Bioconductor version ‘3.19’

A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
试一下安装 github 的呢:

devtools::install_github(“ckntav/gVenn”)
Using github PAT from envvar GITHUB_TOKEN. Use gitcreds::gitcreds_set() and unset GITHUB_TOKEN in .Renviron (or elsewhere) if you want to use the more secure git credential store instead.
Downloading GitHub repo ckntav/gVenn@HEAD
These packages have more recent versions available.
It is recommended to update all of them.
Which would you like to update?

1: All
2: CRAN packages only
3: None
4: rlang (1.1.6 -> 1.1.7 ) [CRAN]
5: lifecycle (1.0.4 -> 1.0.5 ) [CRAN]
6: bitops (1.0-7 -> 1.0-9 ) [CRAN]
7: yaml (2.3.10 -> 2.3.12 ) [CRAN]
8: rjson (0.2.21 -> 0.2.23 ) [CRAN]
9: RCurl (1.98-1.16 -> 1.98-1.18 ) [CRAN]
10: XML (3.99-0.17 -> 3.99-0.23 ) [CRAN]
11: abind (1.4-5 -> 1.4-8 ) [CRAN]
12: cpp11 (0.5.2 -> 0.5.3 ) [CRAN]
13: BH (1.84.0-0 -> 1.90.0-1 ) [CRAN]
14: futile.lo… (1.4.3 -> 1.4.9 ) [CRAN]
15: Rcpp (1.0.13 -> 1.1.1 ) [CRAN]
16: GlobalOpt… (0.1.2 -> 0.1.3 ) [CRAN]
17: colorspace (2.1-1 -> 2.1-2 ) [CRAN]
18: vctrs (0.6.5 -> 0.7.2 ) [CRAN]
19: stringi (1.8.4 -> 1.8.7 ) [CRAN]
20: magrittr (2.0.3 -> 2.0.4 ) [CRAN]
21: restfulr (0.0.15 -> 0.0.16 ) [CRAN]
22: timechange (0.3.0 -> 0.4.0 ) [CRAN]
23: generics (0.1.3 -> 0.1.4 ) [CRAN]
24: RcppArmad… (14.0.0-1 -> 15.2.4-1 ) [CRAN]
25: polylabelr (0.3.0 -> 1.0.0 ) [CRAN]
26: GenSA (1.1.14.1 -> 1.1.15 ) [CRAN]
27: digest (0.6.36 -> 0.6.39 ) [CRAN]
28: png (0.1-8 -> 0.1-9 ) [CRAN]
29: clue (0.3-65 -> 0.3-67 ) [CRAN]
30: GetoptLong (1.0.5 -> 1.1.0 ) [CRAN]
31: circlize (0.4.16 -> 0.4.17 ) [CRAN]
32: writexl (1.5.0 -> 1.5.4 ) [CRAN]
33: stringr (1.5.1 -> 1.6.0 ) [CRAN]
34: lubridate (1.9.3 -> 1.9.5 ) [CRAN]
35: eulerr (7.0.2 -> 7.0.4 ) [CRAN]
36: ComplexHe… (7d95ca5cf… -> dea9f1dc4…) [GitHub]

Enter one or more numbers, or an empty line to skip updates: 3
── R CMD build ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✔ checking for file ‘/tmp/Rtmpz7LQ9L/remotes2dc8758fb585c/ckntav-gVenn-1d1bc33/DESCRIPTION’ …
─ preparing ‘gVenn’:
✔ checking DESCRIPTION meta-information
─ checking for LF line-endings insource and make files and shell scripts
─ checking for empty or unneeded directories
─ looking to see if a ‘data/datalist’ file should be added
─ building ‘gVenn_1.1.1.tar.gz’

Installing package into ‘/mnt/data/home/tycloud/R/library/4.4.1’
(as ‘lib’ is unspecified)
ERROR: this R is version 4.4.1, package ‘gVenn’ requires R >= 4.5.0
Warning message:
In i.p(…) :
installation of package ‘/tmp/Rtmpz7LQ9L/file2dc874b4fe679/gVenn_1.1.1.tar.gz’ had non-zero exit status
直接报错 R 版本不符:

但是我又不想在服务器重新安装新的 R,这样折腾太麻烦且不划算,开发过 R 包的朋友们知道,在 description 文件里会指明你的 R 包需要什么依赖及 R 版本要求,如果我们改一下 R 版本要求是不是可以安装呢?

首先下载原始代码压缩包(bioconductor 也可以下载):

然后我们在本地电脑解压这个压缩包,用文本文件打开 description 文件:

把 R 版本要求设置低一点,我这里设置至少 4.2.0:

然后用 Rstudio 打开这个解压的文件夹,重新 buid 为 source package:

然后文件夹上一层就会有这个 buid 好的压缩文件:

接着我们把这个压缩文件上传到服务器里面,使用本地安装模式来安装:

找到你刚才上传的压缩文件:

然后就安装成功了:

这种方式可能也有其它潜在的问题,可能对一些依赖包可能用不了导致功能受限,严重甚至包很多函数都运行不了,大家感兴趣可以试试看。

结尾
路漫漫其修远兮,吾将上下而求索。

欢迎加入生信交流群。加我微信我也拉你进 微信群聊老俊俊生信交流群(微信交流群需收取 20 元入群费用,一旦交费,拒不退还!(防止骗子和便于管理)) 。

声明:来自老俊俊的生信笔记,仅代表创作者观点。链接:https://eyangzhen.com/6998.html

老俊俊的生信笔记的头像老俊俊的生信笔记

相关推荐

添加微信
添加微信
Ai学习群
返回顶部