[Bioc-devel] building R and bioconductor
becker.gabe at gene.com
Tue Apr 28 19:53:32 CEST 2015
Laurent: Thanks for the shout-out! It's gratifying to see that people have
noticed what I'm doing.
As Laurent suggested, my switchr package (currently at
http://github.com/gmbecker/switchr , on CRAN soon) is designed to do this.
It has a few features which I think are relevant to what you're asking for:
- It is designed to easily install cohorts of packages - or specific
- It uses install.packages to get dependency issues right, while adding
an extra layer that understands versions, and can retreive old versions
from a variety of sources (github, CRAN Archive, Bioc previous releases and
- It provides a mechanism for describing cohorts of specific package
versions (a SeedingManifest) in a form that can be
- used to install the listed packages
- deployed as a traditional repository (including integration
testing) via my related GRANBase package
- Published or distributed in a light-weight manner, e.g. as a github
gist (via http://github.com/gmbecker/switchrGist )
I would argue that whatever approach you choose should deal with package
dependencies and installation order automatically. There should be no
reason for you to need to specify those yourself, and lots of downsides of
doing so. AFAIK RStudio's packrat and my switchr systems both have this
Some things switchr doesn't do:
- Anything at the R-version level or above.
- This is ripe for a combination with a docker-based approach. Carl
Boettiger (cc'ed) is one of the people behind
https://github.com/rocker-org/rocker and there was some discussion of
incorporating switchr there for this purpose, but I don't know
has happened with that yet.
- Binary packages - Currently, you must have the ability to build all
the packages you want from source on the destination system.
I'm happy to answer any further questions about switchr or to hear about
features you need that it doesn't seem to have yet.
On Tue, Apr 28, 2015 at 10:36 AM, Laurent Gatto <lg390 at cam.ac.uk> 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
> > 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  by Gabe Becker et al. might helpful.
>  https://rstudio.github.io/packrat/
>  https://github.com/rstudio/packrat
>  http://arxiv.org/abs/1501.02284
> You might also consider rolling out your own docker image.
>  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,
> > Thanks a lot
> > Stefano
> > _______________________________________________
> > Bioc-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/bioc-devel
> Bioc-devel at r-project.org mailing list
Gabriel Becker, Ph.D
[[alternative HTML version deleted]]
More information about the Bioc-devel