Thanks a lot for your answer. I am trying to do similar to what you sent, but I couldn't find any solution to that. I will try your answer, thanks again.
Dears,
I am trying to download all packages of Bioconductor using BiocManager::available().
I know that BiocManager::available() download the CRAN and Bioconductor packages. Therefore I downloaded the CRAN ones using:
cran_packages <- as.data.frame(available.packages(contrib.url( "https://cran.r-project.org")))
then remove them from the ones that were downloaded using BiocManager::available() to retrieve the only ones related to Bioconductor. The problem is that not all Bioconductor packages are downloaded for example: BiocBasUtils and dualKS packages.
I don't know what should I do to retrieve all the Bioconductor packages without missing something.
Regards,
1 answer
Possibly you are thinking about setting up a mirror of Bioconductor to take to a desolate island (without internet access, aka a high-security environment without internet access for dealing with human data, hospital IT, indeed the possible applications are many). See: https://www.bioconductor.org/about/mirrors/mirror-how-to/ That fulfills your requirement of downloading all packages albeit via rsync, not Biocmanager, but this solution is more efficient.
It would help to know the use case. Also, as others have pointed out, you might have to take more dependencies and therefore more repositories (CRAN, Debian packages) to mirror.
Log in to answer this question.
This is most definitely an XY problem. Why are you trying to download all packages from a repository, especially when they will be outdated in less than a quarter? What is your ultimate purpose in creating this gigantic library?
Agreed. There is no realistic scenario to download all 2000-something Bioconductor packages. Please say what the end goal is.
Disagree, there are some legit use cases, it could picture at least two concrete scenarios, see my answer. Also, this repo isn't really huge (188GB) which is almost nothing in storage. It will be one initial download and then minimal sync traffic after that.
You have to add all CRAN dependencies, plus some packages depend on active ExperimentHub connection, packages that build their own conda environment, packages that depend on reticulate and their python dependencies. It's more complex than simply downloading all Bioc packages as tarballs. You need to download and compile everything. That will take a long time and create a gigantic container.