Dear all,
My gRbase package imports functionality from the bioconductor packages graph,
Rgraphviz and RBGL.
To make installation of gRbase easy, I would like to have these bioconductor
packages installed in connection with installation of gRbase, but to do so the
user must use setRepositories() to make sure that R also installs packages from
bioconductor.
Having to call setRepositories causes what can perhaps be called an
(unnecessary?) obstacle. Therefore I have been experimenting with deferring
installation of these bioc-packages until gRbase is loaded the first time using
.onAttach; please see my attempt below.
However, if the bioc-packages are not installed I can not install gRbase so
that does not seem to be a viable approach. (The bioc-packages appear as
Imports: in DESCRIPTION).
Can anyone tell if it is a futile approach and / or perhaps suggest a solution.
(I would guess that there are many CRAN packages that use bioc-packages, so
other people must have faced this challenge before).
Thanks in advance.
Best regards
S�ren
.onAttach<-function(libname, pkgname) {
## package startup check
toinstall=c(
"graph",
"Rgraphviz",
"RBGL"
)
already_installed <- sapply(toinstall, function(pkg)
requireNamespace(pkg, quietly=TRUE))
if (any(!already_installed)){
packageStartupMessage("Need to install the following package(s): ",
toString(toinstall[!already_installed]), "\n")
}
## install if needed
if(!base::all(already_installed)){
if (!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install(toinstall[!already_installed], dependencies=TRUE)
}
}
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.