Hi,
We would like to use Bioconductor in our VDI environment, Our users use R on their non-persistent Windows virtual desktops with no internet access. The users install R packages using command: install.packages("<package_name>,repos=NULL, contriburl="file:<path_to_lwindows_binaries>/"). We are able to install BiocManager using this command but loading it returns an error: Error: package or namespace load failed for ‘BiocManager’: .onAttach failed in attachNamespace() for 'BiocManager', details: call: NULL error: invalid version specification ‘Bioconductor version cannot be validated; no internet connection?’
How can we install and load Bioconductor packages without internet connectivity? Please, bear in mind I'm a system admin not an R expert so my knowledge of R is very limited :-) Step by step instructions will be very appreciated.
Thanks, Slawek
Thank you for your response Martin. I've managed to create local mirror but now I have another problem. Some Bioconductor packages try to install dependencies that are not present in the local mirror. As I mentioned before our VDI VMs have no internet access and users specify contriburl pointing to our local repository when installing R packages. Is there any way to tell BiocManager that it should be looking for non bioconductor dependencies in our local R packages repository (these are windows binaries by the way)?
I guess these are annotation and experiment data packages, and that the mirror you created is 'only' of the software packages. The robust solution is to mirror those repositories also (like you did with the software packages). You can also create a 'custom' CRAN-style (with a directory hierarchy like that of the mirror you created, perhaps Windows-only, and with a PACKAGES file summarizing the content of the directory, generated e.g., with
tools::write_PACKAGES()
) local repository and add it as thesite_repository=
argument toBiocManager::install()
(or, I'd guess, as an additional path inoptions(repos=...)
).