在R v3.2.5中安装旧版R包(VIM、Bioconductor)失败求助
解决R 3.2.5安装旧版包(VIM 4.8.0)的兼容性报错问题
我之前也踩过旧版本R装包的坑,给你几个针对性的解决方案,按优先级试试:
1. 移除repos参数干扰,直接安装源码包
你原来的命令里加了repos="http://cran.us.r-project.org",这会让R去检查当前CRAN对R 3.2.5的包兼容性,但旧版包在新CRAN的校验里可能被判不兼容。改成下面的命令试试:
install.packages("https://cran.r-project.org/src/contrib/Archive/VIM/VIM_4.8.0.tar.gz", repos=NULL, type="source")
repos=NULL会告诉R直接使用你指定的源码包,跳过CRAN的兼容性检查。
2. 先安装匹配版本的依赖包
旧版VIM 4.8.0依赖其他R包的特定旧版本,比如colorspace、digest、mice等,如果你的电脑上这些依赖是最新版,会导致安装失败。你需要先从CRAN Archive下载对应旧版的依赖包,比如:
# 安装VIM 4.8.0依赖的旧版colorspace(版本号根据VIM的DESCRIPTION文件确定) install.packages("https://cran.r-project.org/src/contrib/Archive/colorspace/colorspace_1.2-6.tar.gz", repos=NULL, type="source")
你可以去VIM 4.8.0的DESCRIPTION文件里查具体依赖版本,或者直接从成功安装的那台电脑里导出依赖包的版本列表,照着安装。
3. 检查编译环境是否匹配
旧版本R(3.2.x)需要对应版本的编译工具:
- Windows用户:必须安装Rtools33(对应R 3.2.x的版本),并且确保Rtools的路径已经加到系统环境变量
PATH里; - macOS用户:需要安装Xcode的旧版本(比如Xcode 7.3),或者用Homebrew安装对应版本的gcc;
- Linux用户:安装系统依赖库的旧版本,比如
libxml2-dev、libcurl4-openssl-dev,可以通过指定版本号安装(比如Ubuntu用apt-get install libxml2-dev=2.9.1+dfsg1-5ubuntu1)。
另一台电脑能成功,很大概率是它的编译环境刚好匹配R 3.2.5。
4. 直接复制已安装的包目录
如果不想折腾编译,最简单的方法是从那台成功安装的电脑上复制VIM包的文件夹:
- 在成功的电脑上找到R的library目录,比如Windows是
C:\Program Files\R\R-3.2.5\library\VIM,Linux/macOS是~/R/x86_64-pc-linux-gnu-library/3.2/VIM; - 把整个VIM文件夹复制到你当前电脑的对应library目录下;
- 重启R,运行
library(VIM)测试是否能正常加载。
关于Bioconductor 3.2的适配
Bioconductor 3.2对应R 3.2.x,不要用新版的Bioc安装命令,直接从Bioconductor的Archive下载旧版包安装:
install.packages("https://bioconductor.org/packages/3.2/bioc/src/contrib/Archive/VIM/VIM_4.8.0.tar.gz", repos=NULL, type="source")
同样要确保依赖包也是Bioconductor 3.2版本的。
内容的提问来源于stack exchange,提问作者Keity




