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]]
______________________________________________ R-help@r-project.org 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.