Giter Club home page Giter Club logo

rocker-versioned's Introduction

rocker-versioned

This repository provides builds for explicit versions of R. This project is under early development and the best way to go about this is not yet clear. Getting the correct version of R installed is not always trivial but is relatively straight forward, and I outline two approaches below.

Getting the correct version of packages (or even merely any compatible version of the package) to install is a considerably more difficult problem, which I'll discuss later.

The rocker team is considering two different strategies, each with strengths and weaknesses:

Compiled builds

The most straight-forward recipe seems to be to adapt the rocker/r-devel file to compile the desired version by pulling from the appropriate tag in the R SVN repository, as suggested by @eddelbuettel

As Dirk suggested, we can build on the r-devel recipe, simply by pointing to the appropriate tag. Occassionally this needs a few extra packages added to the list. I was able to get R 2.0.0 to compile, but not R 1.0.0. More recent versions than 2.0.0 don't seem to pose any difficulty for compiling. Nonetheless, installing additional packages is still an issue.

Binary builds

At different approach is to use the binary versions from old Debian images. This approach works rather well when docker images are available for earlier Debian releases (oldstable and stable, which currently go back as far as Debian 6.0 and 7.0; while the main rocker release builds on Debian testing which is at 8.0). Merely using the earlier Debian releases, we can jump back to certain versions of R:

  • 6.0 : R 2.11.1
  • 7.0 : R 2.15.1

The advantage of this is that binary forms of many common R packages may also be available from the same repositories.

Dirk @eddelbuettel also suggests looking at Debian snapshot archive binaries. This allows us to install intermediate versions of R in binary form, as well as specific versions of any package for which debian binaries have been built. The brilliant bit about this is that we can add any particular snapshot time-period as a normal repository, e.g.

deb     http://snapshot.debian.org/archive/debian/20091004T111800Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20091004T111800Z/ lenny main
deb     http://snapshot.debian.org/archive/debian-security/20091004T121501Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20091004T121501Z/ lenny/updates main

and the package manage can thus handle all the dependencies. As noted, this works only for those packages for which we have debian binaries available in the release.

This is limited to what we can use as a base image, particularly for old versions of R where the binaries are only available for i386 architectures (while there are some Docker images providing i386 architectures, we've so far used only amd64 versions). Given the rapid growth of R however, it is likely that the preponderance of use-cases will focus on relatively recent R versions.

Unfortunately, I haven't gotten this working yet (See issue #2).

Installing R packages

Installing packages directly from CRAN is more dubious. We may be able to install earlier versions of particular packages from the CRAN archives using the CRAN data from metacran/crandb as @hadley recommended.

Hoping that we can do this more generally by building on @gmbecker 's work, which does just this using R versions built as Amazon EC2 AMIs. (See issue #1).

rocker-versioned's People

Contributors

cboettig avatar karl-forner-quartz-bio avatar gmbecker avatar

Watchers

Eric Nantz avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.