在 R 中安装旧版本的 Bioconductor 的 mixOmics 包时出现问题

Problems installing older version of Bioconductor's mixOmics packages in R

我花了一天时间尝试在 R 中加载我保存在 renv 锁文件中的适当包版本。

我在 bioconductor 中使用了与 mixOmics 绑定的 RVAideMemoire 包,无法使用 renv::restore().

自动加载

我按照此处概述的步骤安装了适当版本的 bioconductor (3.11) 以获得 moxOmics 版本 6.12.1。

不幸的是,我最终得到了 mixOmics 版本 6.14.1。 我尝试使用以下方式加载早期版本:

BiocManager::install("mixOmics", version = '6.12.1')

导致以下错误:

Error: version '6.12.1' must have two components, e.g., '3.7'

这似乎有些不清楚,我认为末尾附加的“.1”可能会导致问题,但我尝试加载省略最后一个“.1”的版本,如下所示:

BiocManager::install("mixOmics", version = "6.12")

我遇到另一个错误:

Error: unknown Bioconductor version '6.12'; see https://bioconductor.org/install

我在这里有点不知所措。只要 mixOmics 包安装一直失败,renv::restore() 功能就不会完成更新,所以我似乎有点卡住了,直到我把它理顺。

编辑 只是为了提供更多有关 renv 错误的信息,这是我收到的消息:

Error: failed to retrieve package 'mixOmics' In addition: Warning messages:
1: In system2("curl", args$data(), stdout = TRUE, stderr = TRUE) : running command '"curl" --config "C:/Users/Corey/AppData/Local/Temp/RtmpuYYvKB/renv-tempdir-3d7050aa2ac3/renv-download-config-3d7076f57e1c"' had status 22
2: In downloader(url, destfile, type, request, headers) : curl: (22) The requested URL returned error: 404
3: In system2("curl", args$data(), stdout = TRUE, stderr = TRUE) : running command '"curl" --config "C:/Users/Corey/AppData/Local/Temp/RtmpuYYvKB/renv-tempdir-3d7050aa2ac3/renv-download-config-3d701ff05e24"' had status 22
4: In downloader(url, destfile, type, request, headers) : curl: (22) The requested URL returned error: 404`

尝试使用
的初步建议后 options(renv.settings.bioconductor.version = "3.11") renv::install("bioc::mixOmics@6.12.1")
我收到以下错误:

'getOption("repos")' replaces Bioconductor standard repositories, see '?repositories' for details replacement repositories: CRAN: https://cran.rstudio.com
Querying repositories for available binary packages ... Done!
Querying repositories for available source packages ... Done! Retrieving 'https://bioconductor.org/packages/3.12/bioc/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz' ... Retrieving 'https://bioconductor.org/packages/3.12/data/annotation/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz' ... Retrieving 'https://bioconductor.org/packages/3.12/data/experiment/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz' ... Retrieving 'https://bioconductor.org/packages/3.12/workflows/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz' ... Retrieving 'https://bioconductor.org/packages/3.12/books/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz' ... Retrieving 'https://cran.rstudio.com/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz' ...
Error: failed to retrieve package 'mixOmics'
In addition: There were 24 warnings (use warnings() to see them)

BiocManager::install() 不提供用于安装特定版本包的界面。版本参数的文档指出:

version: 'character(1)' Bioconductor version to install, e.g., 'version = "3.8"'. The special symbol 'version = "devel"' installs the current 'development' version.

即与Bioconductor版本有关,与封装版本无关

也就是说,您应该能够使用 renv 从 Bioconductor 安装特定版本的软件包。例如:

options(renv.settings.bioconductor.version = "3.11")
renv::install("bioc::mixOmics@6.12.1")

您还可以使用 renv::settings$bioconductor.version("3.11") 将所需版本的 Bioconductor 存储为项目设置,供 renvrestore() 期间使用。

I used the package RVAideMemoire which is tied in with mixOmics in bioconductor, which can't be loaded automatically using renv::restore().

我很想知道为什么 renv::restore() 对你来说失败了。

编辑:根据您的输出,您正在尝试使用 Bioconductor 3.12,但该版本的 Bioconductor 不提供 mixOmics 6.12.1。您需要设置 renv 使用的 Bioconductor 版本,详见此答案。 (您可能还需要安装最新版本的 renv 以获得对此的支持。)