On 04/28/2015 10:36 AM, Laurent Gatto wrote:

Dear Stefano,

On 28 April 2015 16:50, Berri, Stefano wrote:

Hi.

I need a very reproducible way of creating a R builds with a series of
CRAN and Bioconductor packages.

I want to be able to download a specific version or R, a specific
version of all packages and then install them in the right order (to
make sure every package has the dependencies at installation time). I

Downloading a specific version of Bioconductor packages retrospectively is challenging, unless the version is the final version in a release cycle. This is because the Bioc repository only contains one version of a package for each release, and while it is might be possible to dissect the svn logs of individual packages to identify when a DESCRIPTION file had a particular version, there may be several svn commits associated with the version (packages are only pushed to the public repository when a version changes at the time the build starts each day, so the first svn revision would be a good [but not infallible] bet as to the revision that was made public).

If you wish to take a snapshot 'now' and have it available in the future, then the tools Laurent mentions might be appropriate. I think I would rather (but maybe I'm just perverse in this respect) rsync ( http://bioconductor.org/about/mirrors/mirror-how-to/ and similar for CRAN) or manually create a 'CRAN-style' repository of source packages, and simply use this as the 'repos' argument (including pointing to a local file system) in install.packages.

To manually create a snapshot, I'd use tools::package_dependencies, and download.packages to get the required package source tar balls, then follow section 6.6 of RShowDoc("R-admin").

Martin

do not want to use install.packages or biocLite because they are not
very transparent/reproducible I have done it for R-3.0.2, but it has
been rather slow and boring (Try installing a package, see the
complaint, go into a working installation, load the package an figure
out the version of all the related packages).

I am wondering if there is an automated way, or a repository, to
recursively retrieve all the package versions required in a certain
version of R.

Using biocLite, you will get the specific package versions required for
your R version. If you want more control, I think packrat [1,2] from
RStudio or this paper [3] by Gabe Becker et al. might helpful.

   [1] https://rstudio.github.io/packrat/
   [2] https://github.com/rstudio/packrat
   [3] http://arxiv.org/abs/1501.02284

You might also consider rolling out your own docker image.

   [4] http://bioconductor.org/help/docker/

I am also looking into easybuild
(http://easybuild.readthedocs.org/en/latest/), and, also there,
knowing the exact path to all the packages in the right order seem
crucial.

how do install.packages or biocLite know what version is required and
where it is located?

The locations are defined by getOption("repos") and biocinstallRepos()
respectively. In the latter case, these will also depend on the version
of R.

Hope this helps.

Best wishes,

Laurent

Thanks a lot

Stefano

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

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



--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

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

Reply via email to