|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# determine Ubuntu release |
| 4 | +source /etc/os-release |
| 5 | + |
| 6 | +## First: update apt and get keys |
| 7 | +apt-get update -qq && apt-get install --yes --no-install-recommends wget ca-certificates gnupg |
| 8 | +wget -q -O- https://eddelbuettel.github.io/r2u/assets/dirk_eddelbuettel_key.asc \ |
| 9 | + | tee -a /etc/apt/trusted.gpg.d/cranapt_key.asc |
| 10 | + |
| 11 | +## Second: add the repo -- here we use the well-connected mirror |
| 12 | +echo "deb [arch=amd64] https://r2u.stat.illinois.edu/ubuntu ${UBUNTU_CODENAME} main" > /etc/apt/sources.list.d/cranapt.list |
| 13 | +apt-get update |
| 14 | + |
| 15 | +## Third: ensure current R is used |
| 16 | +wget -q -O- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc \ |
| 17 | + | tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc |
| 18 | +echo "deb [arch=amd64] https://cloud.r-project.org/bin/linux/ubuntu ${UBUNTU_CODENAME}-cran40/" > /etc/apt/sources.list.d/cran_r.list |
| 19 | +apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 67C2D66C4B1D4339 51716619E084DAB9 |
| 20 | +apt-get update -qq |
| 21 | +DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends r-base r-base-dev r-recommended |
| 22 | + |
| 23 | +## Fourth: add pinning to ensure package sorting |
| 24 | +echo "Package: *" > /etc/apt/preferences.d/99cranapt |
| 25 | +echo "Pin: release o=CRAN-Apt Project" >> /etc/apt/preferences.d/99cranapt |
| 26 | +echo "Pin: release l=CRAN-Apt Packages" >> /etc/apt/preferences.d/99cranapt |
| 27 | +echo "Pin-Priority: 700" >> /etc/apt/preferences.d/99cranapt |
| 28 | + |
| 29 | +chown root:users ${R_HOME}/site-library |
| 30 | +chmod g+ws ${R_HOME}/site-library |
| 31 | + |
| 32 | +ln -s /usr/lib/R/site-library/littler/examples/install2.r /usr/local/bin/install2.r |
| 33 | + |
| 34 | +## add user to sudoers -- not jupyterhub compatible |
| 35 | +# usermod -a -G staff ${NB_USER} |
| 36 | +# echo "${NB_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers |
| 37 | + |
| 38 | + |
0 commit comments