我有一个存储在本地git服务器上的R包。这个软件包有一系列的依赖 - 来自CRAN和Bioconductor的软件包。使用devtools
包,我可以直接从git安装:
library(devtools)
install_git("http://mygitserver.com/username/reponame")
我注意到此安装过程无法安装所有Bioconductor依赖项,但所有CRAN依赖项都已正确安装。
如何设置软件包的依赖项(在DESCRIPTION
文件中),以便正确安装所有Bioconductor软件包依赖项。我已经注意到,当这些包托管在Bioconductor镜像上并通过biocLite()
进行安装时,这不是问题,这表明我可以通过列出install.packages()
的一组镜像来解决这个问题。在声明无法找到包之前。有没有办法自动获取所有这些依赖项?
答案 0 :(得分:1)
答案简短:
setRepositories(ind=1:2)
TL;博士
setRepositories
的文档告诉我们,已知存储库的默认列表存储在文件' R_Home / etc / repositories'"中。我们可以通过几种方式跟踪这一点,但为方便起见,让我们将存储库表读入R(这将切断该文件中的所有注释文档,但您可以使用{{1如果你感兴趣的话。
readLines
想象一下,每一行都有一个索引号。当您致电read.table(file.path(R.home(), "etc", "repositories"), sep = "\t")
menu_name URL default source win.binary mac.binary
CRAN CRAN @CRAN@ TRUE TRUE TRUE TRUE
BioCsoft BioC software %bm/packages/%v/bioc FALSE TRUE TRUE TRUE
BioCann BioC annotation %bm/packages/%v/data/annotation FALSE TRUE TRUE TRUE
BioCexp BioC experiment %bm/packages/%v/data/experiment FALSE TRUE TRUE TRUE
BioCextra BioC extra %bm/packages/%v/extra FALSE TRUE TRUE TRUE
CRANextra CRAN (extras) http://www.stats.ox.ac.uk/pub/RWin FALSE TRUE TRUE TRUE
Omegahat Omegahat http://www.omegahat.org/R FALSE TRUE FALSE FALSE
R-Forge R-Forge http://R-Forge.R-project.org FALSE TRUE TRUE TRUE
rforge.net rforge.net http://www.rforge.net FALSE TRUE TRUE TRUE
CRANextra[https] CRAN (extras, https) https://www.stats.ox.ac.uk/pub/RWin FALSE TRUE TRUE TRUE
R-Forge[https] R-Forge [https] https://R-Forge.R-project.org FALSE TRUE TRUE TRUE
rforge.net[https] rforge.net [https] https://www.rforge.net FALSE TRUE TRUE TRUE
时,您要告诉R查看第1行和第2行中的存储库。
答案 1 :(得分:1)
github存储库的另一个答案是使用biocLite()
source("https://bioconductor.org/biocLite.R")
biocLite("username/reposname")
发送给devithols用于github包,并发送到CRAN / Bioconductor用于其他包。
source()
命令会安装或更新BiocInstaller软件包,因此当您的BiocInstaller版本为最新版本时的变体是
BiocInstaller::biocLite("username/reposname")
为您的exmaple使用devtools,但为您的R和Bioconductor版本使用正确的Bioconductor存储库
install_git("http://mygitserver.com/username/reponame",
repos=BiocInstaller::biocinstallRepos())
repos
参数最终传递给install.packages()
。更具体地说,对我来说,我有
> biocinstallRepos()
BioCsoft
"https://bioconductor.org/packages/3.3/bioc"
BioCann
"https://bioconductor.org/packages/3.3/data/annotation"
BioCexp
"https://bioconductor.org/packages/3.3/data/experiment"
BioCextra
"https://bioconductor.org/packages/3.3/extra"
CRAN
"https://cran.rstudio.com"
使用第二个注释包,BioCann,url。