Hello all,

i am one of the maintainers of the open-source
https://repo2docker.readthedocs.io/ tool. The tool builds a container image
from a directory. Depending on what it finds in the directory it will
install different software for the user. The focus of the tool is to make
it easier for researchers to create environments in which their code runs
and can then be used to share and reproduce their results.

One language we support is R. We let people choose which version they need
and because we are based on Ubuntu we use the packages provided on
https://cran.r-project.org/bin/linux/ubuntu/README.html to install R 3.5
and 3.6 (R 3.4 comes as part of Ubuntu bionic).

Recently a user reported that R 3.5 builds had stopped working with the
following error message:

The following packages have unmet dependencies:
 r-base : Depends: r-recommended (= 3.5.3-1bionic) but 3.6.1-3bionic is to
be installed
          Recommends: r-base-html but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Which is the output of running (something like) `apt-get install --yes
r-base=3.5.3-1bionic r-base-dev=3.5.3-1bionic libclang-dev`.

This used to work but as someone who isn't mega familiar with Ubuntu/Debian
packaging nor R I don't know how to start debugging this. It seems like
something is pulling in a newer (3.6.x) version of a package. The full
issue with a minimal Dockerfile to reproduce the error is in
https://github.com/jupyter/repo2docker/issues/813#issuecomment-555523826.
You can also see repo2docker in action on
https://mybinder.org/v2/gh/betatim/r-versions-binder/master (make sure to
unfold the build log) which is where repo2docker is used in production.

I saw another thread with a discussion about not maintaining combos of
Ubuntu and R and R package versions. Maybe this is related? (I don't know
enough to judge that as I know very little about R, despite helping
maintain a tool that uses it :-)

With repo2docker we are in a slightly weird position where we want to
enable container image builds that worked 6months or 12months ago to also
work today. This means if a user built a container with R 3.5 in the past
on this particular version of Ubuntu we'd like to be able to re-run that
container image build in the future. Not having to build R from source and
instead using the packages provided here looked like a good way of doing
this. But maybe this isn't the right way to go about it.

And and all ideas and thoughts would be great to figure out if we are on
the right track here as well as how to help fix this.

T

        [[alternative HTML version deleted]]

_______________________________________________
R-SIG-Debian mailing list
R-SIG-Debian@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-debian

Reply via email to