rocker-org / rocker-versioned

Run current & prior versions of R using docker
https://hub.docker.com/r/rocker/r-ver
GNU General Public License v2.0
297 stars 169 forks source link

first proof of concept of MRAN repos, and some work-arounds #5

Closed kforner closed 9 years ago

kforner commented 9 years ago

R-3.1.1

For better reproducibility:

work-around: could not make it to work purely on a debian snapshot. Had to mix with the default repository using an apt preferences file to force only the r-* packages from the debian snapshot.

cboettig commented 9 years ago

Cool, nice work on this so far. It's not clear to me if you're referring to installing general cran R packages from MRAN or just base r stuff? What workflow do you envision for installing additional R packages on one of these images? Would a user apt-get install r-cran-ape etc?

As far as getting just base-r to build, Dirk's trick of installing from SVN seems reliable going pretty far back (e.g. the images in compiled/).

eddelbuettel commented 9 years ago

And I think the SVN repo is properly 'tagged' so you should be able to get particular versions of R.

kforner commented 9 years ago

It's not clear to me if you're referring to installing general cran R packages from MRAN or just base r stuff? What workflow do you envision for installing additional R >packages on one of these images? Would a user apt-get install r-cran-ape etc?

no, using the MRAN repo, you just packages as usual, using install.packages(). The point is that i f you use a normal CRAN repo, you will get a package possibly incompatible with the R version (e.g. with dependency on R >= 3.2).

As far as getting just base-r to build, Dirk's trick of installing from SVN seems reliable going pretty far >back (e.g. the images in compiled/).

Compiling from source was also my first approach, but:

What I'd like is that for any real serious scientific work, we use versioned rocker images that will work forever.

eddelbuettel commented 9 years ago

You can easily create versioned rocker images going forward but going backwards requires either

We only suggested the latter so that you get something going.

kforner commented 9 years ago
  • a compromise, eg rebuilding from SVN.

This may fail too at any point if you does not use a snapshot repository. I think that if you use a fixed version of the base image (i.e. the debian, that is currently one other issue since those images are not static), a debian snapshot and a MRAN snapshot you are pretty safe, or did I miss something ?

I agree that you may need some try-and-error to develop the Dockerfile, but you only have to do it once.

eddelbuettel commented 9 years ago

Yes, I obviously meant using a combination of old Debian releases, and the snapshot package facility, to recreate as closely what you aim for: old code and old mathing tools as binaries to recreate R binary resembling "what was built then".

kforner commented 9 years ago

ok, this was for backlog. But thinking now for the future, for instance R-3.1.1. My goal is to create now a docker whose usage will be identical in 5 years for instance. I based the Dockerfile on debian:wheezy. Is-it a good idea ? I do not know much about debian, it this in your opinion a good choice ?

On Fri, Nov 7, 2014 at 2:18 PM, Dirk Eddelbuettel notifications@github.com wrote:

Yes, I obviously meant using a combination of old Debian releases, and the snapshot package facility, to recreate as closely what you aim for: old code and old mathing tools as binaries to recreate R binary resembling "what was built then".

— Reply to this email directly or view it on GitHub https://github.com/rocker-org/rocker-versioned/pull/5#issuecomment-62140812 .

eddelbuettel commented 9 years ago

See https://www.debian.org/releases/ I can't decide that for you. I like testing better than stable but that because I update frequently. Just make a choice and document it.