[Rd] Docker versus Vagrant for reproducability - was: The case for freezing CRAN

Bennet Fauber bennet at umich.edu
Sun Mar 23 15:08:59 CET 2014

Vagrant and packer look like the could be useful to developers,
especially when testing, as they make it relatively painless to
'reinstall' a machine to a (mostly) known state.  I find that, no
matter how hard I try, there always seem to be a few keystrokes that
don't make it into the changelog, and recreating from scratch is how I
find them.  Thanks for pointing them out.

I would weigh in on the side of those who are against 'freezing' CRAN.
 The notion of having an R package repository that is frozen is a fine
one, and I would probably support such a thing and find it useful, but
that's not, to my mind, what CRAN is.  CRAN is an open place for
people to put their packages where others can get at them, while they
are under active development and after.  I don't think it a good idea
to make it into something else.

'Freezing it' also seems a bit misguided, as that would freeze it,
warts and all.  Something along the lines of the RHEL or LTS idea,
where perhaps major.minor versions of things are essentially frozen,
but security and bug patches continue seems more right-minded.  Strict
replicability is best done with VM images, though I suppose one should
also put a 'This image packed on <DATE>', along with a list of
ingredients, on any VM image.  It probably should be the
responsibility of the researcher to look after their research, if it
isn't already, so the onus of freezing should be there, not at CRAN.

With respect to X, NX is quite nice, though I've had mixed success
with the older, open-source server not always seeming to work.  The
commercial one is free, but limited to two users.  I've used the
classic VNC (in several flavors, which depends on your linux distro)
with ssh tunnels, where you ssh to a text screen, tunneling the port
you want X over, then manually start an Xvnc session.  You can
disconnect from the VNC session and reconnect later and the session
will be running.  NX is essentially the same thing, except it handles
the details of the ssh tunnel for you.  With both, graphical
performance is much, much better than tunneling X directly.

-- bennet
HPC Software Support
University of Michigan

More information about the R-devel mailing list