[Bioc-devel] BiocManager::install

Martin Morgan mtmorg@n@b|oc @end|ng |rom gm@||@com
Sat May 6 12:59:25 CEST 2023


For off-piste use I would have consulted `setRepositories(graphics = FALSE)` and then

```
## use Sys.setenv() before setRepositories
Sys.setenv(R_BIOC_VERSION="3.18")
setRepositories(ind = 1:4) # CRAN plus Bioc soft, anno, and expt repos
getOption("repos")    # check
install.packages("BiocGenerics")
```

The help page ?BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS says

     �BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS� is an environment variable
     or global �options()� which, when set to �FALSE�, avoids the R and
     _Bioconductor_ version checks that are done by querying an online
     configuration file. Setting
     �BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS� to �FALSE� can speed
     package loading when internet access is slow or non-existent, but
     may result in out-of-date information about the current release
     and development versions of _Bioconductor_. Offline users should
     set the �BIOCONDUCTOR_CONFIG_FILE� environment variable or option
     to a �.yaml� file similar to
     https://bioconductor.org/config.yaml for full offline use and
     version validation.

This could be clarified to more clearly indicate that BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS replaces the online version check with a local check against BIOCONDUCTOR_CONFIG_FILE; it does not disable the check. If you've copied the online file to a local file verbatim, then the same constraints are validated but without going online.

The use case that this is meant to support is when the Bioconductor repository (options(BioC_mirror = �)) is itself off-line or not internet accessible, as might be the case in a corporate or HPC environment where a local mirror is maintained on the file system or inside a firewall.

One could hack the local config file in a more or less obvious way (replace "3.18" : "4.3" in the r_ver_for_bioc_ver section) but I would do something less easily forgotten.

FWIW I don't think BiocManager should support non-standard installations, keeping most users on track but letting the experts fend for themselves.

Martin


From: Bioc-devel <bioc-devel-bounces using r-project.org> on behalf of Wolfgang Huber <wolfgang.huber using embl.org>
Date: Saturday, May 6, 2023 at 4:40 AM
To: bioc-devel using r-project.org <bioc-devel using r-project.org>
Subject: [Bioc-devel] BiocManager::install
Hi,

I am wondering whether:
1. it could be easier to install Bioconductor packages (devel or release) on R-devel (or other non-standard R versions) using BiocManager::install (I may be stirring a hornet�s nest with that:)
2. whether its documentation needs to be updated and/or its implementation could be deconvoluted (hopefully that�s uncontroversial).

Re the first point, I appreciate that we�re trying to help non-expert users with simple use cases, and that we had/have a lot of trouble with users working with out-of-sync versions. OTOH, the current solution (rigid, confusing documentation, seemingly buggy implementation) seems to be standing in the way for developers, a dichotomy that we do not really want.

Of course, a workaround is
```{r}
> install.packages("ggtree", repos = c(�@CRAN@", "https://bioconductor.org/packages/3.18/bioc")
```
and maybe this is just the answer. So far, my workflows have been based on BiocManager::install, but I get (and cannot seem to get rid of):

```{r}
> options(BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS = FALSE)
> BiocManager::install("ggtree", version = "devel")
Error: Bioconductor does not yet build and check packages for R version 4.4; see
  https://bioconductor.org/install

> sessionInfo()
R Under development (unstable) (2023-05-05 r84398)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.3.1

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Users/whuber/R.framework/Versions/4.4/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Europe/Berlin
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] BiocManager_1.30.20 fortunes_1.5-4

loaded via a namespace (and not attached):
[1] compiler_4.4.0  tools_4.4.0     rstudioapi_0.14
```

I noted some discussion on this here: https://github.com/Bioconductor/BiocManager/issues/13 but this was 5 years ago.
It appears that the documentation of BiocManager::install mismatches its implementation, and overall the process for something that's conceptually quite simple seems to have become convoluted.

One of the most helpful documentation resources on this topic btw is https://solutions.posit.co/envs-pkgs/bioconductor/ which cheerfully concludes "Working with BioConductor packages for code development is possible."

Thanks and best wishes
Wolfgang

--
Wolfgang Huber
EMBL
https://www.embl.org/groups/huber

_______________________________________________
Bioc-devel using r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list