hi anybody knows where is 3.9 version? It is not in CRAN that's for sure. Many thanks, L.
...
selection: 1
trying URL
'https://cloud.r-project.org/src/contrib/BiocManager_1.30.4.tar.gz'
Content type 'application/x-gzip' length 242304 bytes (236 KB)
==================================================
downloaded 236 KB
* installing *source* package ‘BiocManager’ ...
** package ‘BiocManager’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
converting help for package ‘BiocManager’
finding HTML links ... done
BiocManager-pkg html
available html
install html
repositories html
valid html
version html
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation
path
* DONE (BiocManager)
Making 'packages.html' ... done
The downloaded source packages are in
‘/tmp/RtmpDHZeQE/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
> library(BiocManager)
Bioconductor version 3.8 (BiocManager 1.30.4), ?BiocManager::install for
help
Bioconductor version '3.8' is out-of-date; the current release version
'3.9' is
available with R version '3.6'; see https://bioconductor.org/install
Warning message:
Bioconductor version '3.8' requires R version '3.5'; see
https://bioconductor.org/install
I'm not. Do you people really presume that everybody else is a dummy of some sort and unable to do 2 + 2 ??
What I originally pasted is all from R 3.6
OK; likely you have a stale version of the BiocVersion package, probably because you re-used the libraries from R-3.5 in R-3.6. Remove BiocVersion
and start again. (Better practice: don't re-use libraries across R versions).
Not making any presumptions, just working through what I see in your report, which did not include any information about R version actually in use.
Okey, it's BiocVersion which messes the whole thing up. Manually "BiocVersion" must be removed first and then BiocManager 3.9 will install properly.
Any @devel, cares to explain, anybody knows - why?
Glad that worked. What would you like explained?
What BiocVersion had to do with that? Why was it the cause of the problem?
The basic issue is that R has an annual release cycle, whereas Bioconductor has a twice-yearly release cycle. Also, Bioconductor has a 'devel' branch where new packages and features are introduced, and a 'release' branch where bug fixes and relative stability are important.
Previously, one would install a Bioconductor package by running
source(".../biocLite.R")
to read a file from the web. The file contained an installation script that was smart enough to figure out what version of R and Bioconductor were in use / appropriate for the person invoking the script. Sourcing an executable script from the web is an obvious security problem.Our solution was to use a CRAN package BiocManager, so that users would start the ball rolling with an installation from CRAN, rather than sourcing from the web.
But how does a CRAN package know what version of Bioconductor is in use? Can we use BiocManager? No, because we don't have enough control of the version of BiocManager available on CRAN, e.g., everyone using the same version of R would get the same version of BiocManager and hence of Bioconductor. But there are two Bioconductor versions per R version, so that's not going to work!
BiocManager could write information to a cache on the user disk, but this is not a robust solution for a number of reasons. Is there any other way that R could keep track of version information? Yes, by installing a Bioconductor package (BiocVersion) whose sole purpose is to indicate the version of Bioconductor in use. You see this when you run BiocManager for the first time
You were re-using your BiocVersion from a previous installation, and BiocManager was responding to the request to install a version of Bioconductor that required a different version of R.
One weakness in the current approach is that the BiocManager does not actually load BiocVersion, it just determines the package version (the scenario below continues from above, but is not quite the same as your scenario)
If BiocManager actually tried to load the package, R would have objected
We will certainly make this process more robust, with a clearer indication to the user of what the underlying problem is.
Great explanation Martin, thanks. Perhaps a similar explanation should be included in the BiocVersion package itself, to provide a reference for similar questions in the future.
Out of interest, does the
version
argument toBiocManager::install()
affect the BiocVersion package? I'm wondering because this answer to a similar symptom (https://support.bioconductor.org/p/120724/#120726) seems to get a lot of votes, but it doesn't suggest removing BiocVersion first.