Welcome to the 40th post in the $R^4 series. This one will just be a very brief illustration of r2u use in what might be an unexpected place: Google Colab. Colab has a strong bent towards Jupyter and Python but has been supporting R compute kernels for some time (by changing what they call the ‘runtime’). And with a little exploration one can identify these are (currently, as of July 2023) running Ubuntu 20.04 aka ‘focal’.
Which is of course one of two system supported by our lovely r2u project (with the
other being the newer 22.04 aka ‘jammy’). And I mostly tweeted / tooted
about r2u since the its
introduction in #37. And gave basically just a mention in passing in
‘faster
feedback’ post #38 as well as the ‘faster
feedback in ci’ post #39). So a brief recap may be in order. In
essence, r2u makes all
of CRAN available as
full-fledged Ubuntu binaries with complete and full dependencies which
are then installed directly and quickly via apt
. Which, to
top it of, are accessed directly from R via
install.packages()
so no special knowledge or sauce needed.
We often summarize it as “fast, easy, reliable: what is not to
like”.
And, as we established in a few minutes of probing, it also works in
the ‘focal’-based Colab session. The screen shot shows the basic step of
fetching the setup script (for ‘plain’ Ubuntu focal system) from r2u, making it executable
and running it. Total time: 34 seconds. And after that we see the pure
magic of install.packages("tidyverse")
installing
all of it in nine seconds. Additionally, we add the
brms
package in thirty-one seconds cia
install.packages("brms")
. Both load just fine and echo
their current values.
The commands that are executed in that R session are just
download.file("https://github.com/eddelbuettel/r2u/raw/master/inst/scripts/add_cranapt_focal.sh",
"add_cranapt_focal.sh")
Sys.chmod("add_cranapt_focal.sh", "0755")
system("./add_cranapt_focal.sh")
install.packages("tidyverse")
library(tidyverse)
install.packages("brms")
library(brms)
The timings are the Colab notebook are visible in the left margin.
The lack of output makes debugging a little trickier so I still
recommend to use r2u
for first expploration via a Docker container as
e.g. rocker/r2u:jammy
.
More information about r2u is at its site, and we answered some question in issues, and at stackoverflow. More questions are always welcome!
If you like this or other open-source work I do, you can now sponsor me at GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.