R包安装报错 is not available

R包安装报错ERROR: dependency is not available

软件版本

  • R版本:version 3.6.0

简要过程

  • 安装R包:ComplexHeatmap
  • 安装命令:BiocManager::install("ComplexHeatmap")
  • 报错信息:ERROR: dependency ‘GetoptLong’ is not available for package ‘ComplexHeatmap’
  • 原因:ComplexHeatmap依赖的GetoptLong依赖的rjson,要求R版本高于当前版本
  • 解决:先安装旧版本的rjson,再安装ComplexHeatmap

具体过程

1

在github有查到报错信息:

  • 找到个相关Issue
  • 按这个Issue说的,安装更旧版本的GetoptLong。
    install.packages("https://cran.r-project.org/src/contrib/Archive/GetoptLong/GetoptLong_0.1.8.tar.gz", repo = NULL)

2

尝试安装更旧版本的GetoptLong时,会报另外一个包的错:

  • ERROR: dependency ‘rjson’ is not available for package ‘GetoptLong’
  • 在CRAN上查rjson,当前这个包的版本是 0.2.21,Depends的R版本要≥ 4.0.0。
  • 就是这个原因导致ComplexHeatmap安装不上,其实一开始GetoptLong的报错往上翻一点就会看见rjson的报错。
    rjson_Depends

3

  • 到Old sources找旧版本,从新往旧,一个个安装试试。0.2.20版本就装得上。
    install.packages("https://cran.r-project.org/src/contrib/Archive/rjson/rjson_0.2.20.tar.gz", repo = NULL)
    Old_sources

4

  • rjson安装成功后,重新安装ComplexHeatmap。
  • BiocManager::install("ComplexHeatmap")安装成功。