Giter Site home page Giter Site logo

r2u's Introduction

r2u: CRAN as Ubuntu Binaries

Key features

  • Full integration with apt as every binary resolves all its dependencies: No more installations (of pre-built archives) only to discover that a shared library is missing. No more surprises.

  • Full integration with apt so that an update of a system library cannot break an R package: if a (shared) library is used by a CRAN, the package manager knows, and will not remove it. No more (R package) breakage from (system) library updates.

  • Simpler and lighter than some alternatives as only run-time library packages are installed as dependencies (instead of generally heavier development packages).

  • Installations are fast, automated and reversible thanks to the package management layer.

  • Fast and well-connected mirror at r2u.stat.illinois.edu on the Internet2

  • Complete coverage with (currently) ~ 22,651 CRAN packages (and 401 from BioConductor) using current versions: We use R 4.3.2, and BioConductor 3.18.

  • Complete support for both Ubuntu 20.04 ("focal") and Ubuntu 22.04 ("jammy").

  • Optional (but recommended) bspm use automagically connects R functions like install.packages() to apt for access to binaries and dependencies.

  • Docker containers rocker/r2u from the Rocker Project for both 'focal' and 'jammy'.

  • GitHub Actions support to set up on Ubuntu 22.04 "jammy" or via container

Brief Demo

The gif below shows how one install.packages("tidyverse") command on an Ubuntu 20.04 system installs all packages and dependencies as binaries in 18 seconds (by passing the R package installation to apt using bspm).

This uses the Docker container referenced below, which has been set up with the five easy setup steps detailed here.

What is Covered ?

We generally support amd64 (i.e. standard 64-bit Intel/AMD cpus, sometimes also called x86_64) for the current Ubuntu LTS release and its predecessor release (more on this here). We use 'r-release' just like CRAN. So currently the 'focal' 20.04 LTS and 'jammy' 22.04 LTS releases are fully supported.

Support for other cpu architectures is certainly possible but somewhat unlikely due to a lack of (additional hardware) resources and time. Support for other distributions is possible but unlikely right now (due to a lack of resources and time). P3M/PPM/RSPM now appears to also support Debian which could be added at some later point.

Current versions are based on R 4.3.2, and BioConductor release 3.18 packages are provided when required by CRAN packages. Binaries are generally R 4.3.* based. Some older packages released when we used R 4.2.* may have been built with R 4.2., they will still work the same with R 4.3. as R is generally forward-compatible.

What is Selected ?

Everything :)

Initially, we started from cran-logs by picking the N most-downloaded packages, along with their dependencies from BioConductor. (It should be noted that for example the first 100 packages already account for approximately half the total downloads: it is a very skewed distribution.) We iterated, and fairly soon arrived of full coverage of CRAN.

So we now cover

  • all CRAN packages (modulo at best handful of blacklisted ones) including all packages needing compilation
  • all BioConductor packages implied by these plus a 'healthy subset' of the highest scoring BioConductor packages (also covering e.g. all BioConductor packages in the Debian and Ubuntu distributions)

This currently results in 22741 and 22651 binary packages from CRAN in "focal" and "jammy", respectively, and 401 and 401 BioConductor packages, respectively, from the 3.18 release. (See this FAQ about why this number is higher than CRAN.)

The sole exception are two packages we cannot build (as we do not have the required commercial software it accessess) plus less than a handful of 'odd builds' that fail and are skipped.

What is it Based On?

For the CRAN binaries we either repackage RSPM/PPM builds (where available) or build natively. All selected BioConductor 3.18 packages are built natively. For all of these, full dependency resolution and integration with the system is a key feature.

Everything is provided as .deb binary files with proper dependency resolution by using a proper apt repo which also has a signed Release file.

Usage and Setup

(Note that you could use one of the two scripts add_cranapt_jammy.sh (for Ubuntu 22.04), or add_cranapt_focal.sh (for the older Ubuntu 20.04) to facilitate the setup. They are tested on 'empty' Ubuntu containers of the corresponding release. However, you may prefer to execute the steps outlined here by hand.)

We show the setup step by step for 'jammy' aka Ubuntu 22.04. You should run all these commands as root to carefully review each one.

Step 1: Update apt, install tools, fetch key

First add the repository key so that apt knows it (this is optional but recommended)

apt update -qq && apt install --yes --no-install-recommends wget \
    ca-certificates gnupg
wget -q -O- https://eddelbuettel.github.io/r2u/assets/dirk_eddelbuettel_key.asc \
    | tee -a /etc/apt/trusted.gpg.d/cranapt_key.asc

Step 2: Add the apt repo

Second, add the repository to the apt registry. We recommend the well-connected main mirror provide at University of Illinois:

echo "deb [arch=amd64] https://r2u.stat.illinois.edu/ubuntu jammy main" \
     > /etc/apt/sources.list.d/cranapt.list
apt update -qq

Step 3: Ensure you have current R binaries (optional)

Third, and optionally, if you do not yet have the current R version, run these two lines (or use the standard CRAN repo setup)

wget -q -O- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc \
    | tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
echo "deb [arch=amd64] https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/" \
    > /etc/apt/sources.list.d/cran_r.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys \
    67C2D66C4B1D4339 51716619E084DAB9
apt update -qq
DEBIAN_FRONTEND=noninteractive apt install --yes --no-install-recommends \
    r-base-core

Step 4: Use pinning for the r2u repo (optional)

Fourth, add repository 'pinning' as apt might get confused by some older packages (in the Ubuntu distro) which accidentally appear with a higher version number. See the next section for a short discussion how it ensures 'CRANapt' sorts highest.

echo "Package: *" > /etc/apt/preferences.d/99cranapt
echo "Pin: release o=CRAN-Apt Project" >> /etc/apt/preferences.d/99cranapt
echo "Pin: release l=CRAN-Apt Packages" >> /etc/apt/preferences.d/99cranapt
echo "Pin-Priority: 700"  >> /etc/apt/preferences.d/99cranapt

After that the package are known (under their r-cran-* and r-bioc-* names). You can install them on the command-line using apt and apt-get, via aptitude as well as other front-ends.

Step 5: Use bspm (optional)

Fifth, and also optional, install and enable the bspm package so that the r2u (or CRANapt) as well as other R packages (available as r-*.deb binaries) become available via install.packages() and update.packages(). Note that you may need to install it directly from source via sudo Rscript -e 'install.packages("bspm")' to ensure it integrates correctly with the packaging system. You should also install Python components used internally by bspm via the sudo apt-get install python3-{dbus,gi,apt} command.

apt install --yes --no-install-recommends python3-{dbus,gi,apt}
## Then install bspm (as root) and enable it, and enable a speed optimization
Rscript -e 'install.packages("bspm")'
RHOME=$(R RHOME)
echo "suppressMessages(bspm::enable())" >> ${RHOME}/etc/Rprofile.site
echo "options(bspm.version.check=FALSE)" >> ${RHOME}/etc/Rprofile.site

That's it! Now try it out!

About Pinning

Packages can be found in different repositories, and generally the highest available version is the one we what---and apt picks it for us. Now, because we let apt (and related tools) pick the packages based on versions, we may want to ensure that the CRANapt repo sorts higher than the default repo as (older) package builds in the distribution itself may appear (to apt) to be newer via a quirk in the sorting algorithm. A case in point was package gtable whose version in Ubuntu was 0.3.0+dfsg-1 which accidentally sorts higher than the rebuild we made under a newer and more consistent version number 0.3.0-1.ca2004.1.

For this issue, one possible and popular fix is to use 'apt pinning'. It can give 'higher weight' to packages from a particular repositor or tag. In the suggested example above, we give the r2u / cranapt repo a weight of 700 which is higher than the package default value of 500.

Docker

There are also two Docker containers for Ubuntu 20.04 'focal' and 22.04 'jammy', respectively. Initially published as eddelbuettel/r2u, these are now also available also as rocker/r2u. They all have the features detailed above, including pinning and bspm support, already set up.

Each of the Ubuntu LTS flavors, i.e., 'focal' and 'jammy' is also available as an identical image using the release version, i.e., '20.04' and '22.04', respectively.

Note that with some builds of Docker (and possibly related to Ubuntu hosts) you may have to add the --security-opt seccomp=unconfined option to your Docker invocation to take advantage of bspm and the full system integration inside the container. This is also documented in the FAQ.

GitHub Actions

There are two basic ways to take advantage of r2u in a GitHub Actions. The first, and simplest, is to switch to using the Docker container (see previous section). This is as simple as adding the container: statement after runs-on: in jobs: section:

    runs-on: ubuntu-latest
    container:
      image: rocker/r2u:22.04

A complete example is provided in this R package repo. The key advantage of this approach is that everything is already set up.

A second approach consists of adding r2u as a step via the r2u-setup GitHub Action:

      - name: Setup r2u
        uses: eddelbuettel/github-actions/r2u-setup@master

A complete example is provided in this repo where we use it because using the Docker container approach makes committing back via git a little harder.

Try It

Via codespaces

See the vignette Codespaces about how to launch a 'Codespace' directly in your browser, launched from the gitrepo within minutes.

This also works from your vscode installation as a remote codespace.

The vignette has more details.

Via gitpod.io

Use this link below (after possibly signing up for gitpod.io first)

Open in Gitpod

and run one of the three example scripts, or just start R in the terminal window.

The gif below display running one such example to install brms from binaries in a few seconds. Using this requires only (free) GitHub and GitPod accounts.

Usage Statistics

Usage is vibrant. As of late 2023, nearly 300,000 packages are shipped per week, with a total of now over thirteen million packages shipped. Early September 2023 also had the most recent and dramatic spike of over three million packages in two days. The following chart gives a summary of cumulative and average weekly downloads (the latter one on a log scale) as of December 2023.

Support

Please file issues at the GitHub issues for r2u.

Frequently Asked Questions

Please also see the FAQ for answers to Frequently Asked Questions.

Known Issues

  • The littler package reflects build-time configuration, the RSPM/PPM binary is then expecting a different R location so it needs a binary rebuild. Added a 'force' flag, may need a list similar to the blacklist to always compiled.

  • A small number of packages do not build for lack required components; examples are ROracle and Rcplex. They, and their reverse dependencies, are blacklisted and not built.

  • r2u is an apt repo, which via bspm becomes used "automagically" via standard R calls of install.packages() and alike. That last part is important: package installations that do not use install.packages() (such as renv, rig, ...) do not benefit from install.packages() calling apt for you, and cannot take advantage of r2u via bspm.

  • bspm traces calls to install.packages() and maps them system-wide installation via apt. By choice, it does not map the remove.packages() for package removal, see this issue for more discussion. Packages can be uninstalled via the system package manager using, respectively, apt, dpkg or one of graphical frontends as well as via the R function bspm::remove_sys().

Author

Dirk Eddelbuettel

License

The repository-building code in this package is released under the GPL (>= 2).

All CRAN and BioConductor packages are released under their respective licenses.

Acknowledgment

This was made possible by the generous support of endless coffee thanks to my GitHub Sponsors.

r2u's People

Contributors

eddelbuettel avatar jdblischak avatar jesse-ross avatar jmiahjones avatar rcannood avatar remlapmot avatar zeehio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

r2u's Issues

Different number of CRAN packages with `available.packages()`?

Hi, I saw your recent announcements on Mastodon about the number of CRAN packages supported (~22k) and I was surprised because I thought the number of CRAN packages was around 20k. This is also what available.packages() returns:

nrow(available.packages())
#> [1] 19946

I'm simply curious, where does the difference come from?

Many thanks for r2u!

Is r2u compatible with Singularity?

Dear Dirk,

on a HPC machine, we need to use Singularity and not directly docker.
So, first converting the docker image is:

singularity pull docker://eddelbuettel/r2u:jammy

Then, the singularity image (SIF) is created but the admin part was ripped off. I can start a container with R, but the the great CRANapt seems to have suffered from the operation:

$ singularity exec r2u_jammy.sif R

R version 4.2.0 (2022-04-22) -- "Vigorous Calisthenics"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages("Seurat")
Error: cannot connect to the system package manager

Am I doing it wrong or is it a limitation? Classic containers of singularity image with R and install.packages() calls are fine.
Many thanks in advance,

Support for the ARM64 system architecture

The rocker/r2u containers seem to be fixed to the AMD64 architecture, as the usual automatic selection of the correct underlying system architecture does not work. Unfortunately, this means that the containers on Apple M-chips are quite slow, as they are based on the ARM64 architecture and the entire code has to be compiled with Rosetta.

Are there plans to support ARM in the future?

Alternative mirrors?

The "well-connected main mirror" is rather slow far away from Illinois.
Are there alternative mirrors available?
(I am personally in Germany)

is arrow package available [on arm64 aka aarch64] ?

after setting up r4u, R still insists on building from source. Source build always fails for me so I was hoping r4u would solve my issue.

 install.packages("arrow",source="binary")
Install system packages as root...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Hit http://us-east-1.ec2.ports.ubuntu.com/ubuntu-ports jammy InRelease
Hit http://us-east-1.ec2.ports.ubuntu.com/ubuntu-ports jammy-updates InRelease
Hit http://us-east-1.ec2.ports.ubuntu.com/ubuntu-ports jammy-backports InRelease
Hit https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ InRelease
Hit http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease
Ign https://r2u.stat.illinois.edu/ubuntu jammy InRelease
Hit https://r2u.stat.illinois.edu/ubuntu jammy Release
Hit https://ppa.launchpadcontent.net/c2d4u.team/c2d4u4.0+/ubuntu jammy InRelease
Fetched 0 B in 0s (0 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Fetched 0 B in 0s (0 B/s)
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/arrow_12.0.1.1.tar.gz'
Content type 'application/x-gzip' length 4097373 bytes (3.9 MB)
==================================================
downloaded 3.9 MB

* installing *source* package ‘arrow’ ...
** package ‘arrow’ successfully unpacked and MD5 sums checked
** using staged installation
*** Building on linux aarch64
*** Found local C++ source: 'tools/cpp'
*** Building libarrow from source

...etc.

apt pinning seems to have no effect for r-cran-jquerylib

r-cran-jquerylib from R2U should be installed, but the one from the standard Ubuntu repo is installed despite the r2u apt repo has priority 700:

$ cat /etc/apt/preferences.d/99cranapt
Package: *
Pin: release o=CRAN-Apt Project
Pin: release l=CRAN-Apt Packages
Pin-Priority: 700

$ apt policy r-cran-jquerylib 
r-cran-jquerylib:
  Installed: 0.1.4+dfsg-3
  Candidate: 0.1.4+dfsg-3
  Version table:
 *** 0.1.4+dfsg-3 500
        500 http://ftp.belnet.be/ubuntu jammy/universe amd64 Packages
        500 http://ftp.belnet.be/ubuntu jammy/universe i386 Packages
        100 /var/lib/dpkg/status
     0.1.4-1.ca2204.1 700
        700 https://dirk.eddelbuettel.com/cranapt jammy/main all Packages
     0.1.4-1cran1.2204.0 500
        500 http://ppa.launchpad.net/c2d4u.team/c2d4u4.0+/ubuntu jammy/main amd64 Packages
        500 http://ppa.launchpad.net/c2d4u.team/c2d4u4.0+/ubuntu jammy/main i386 Packages
$ 
$ apt install r-cran-jquerylib 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
r-cran-jquerylib is already the newest version (0.1.4+dfsg-3).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
$ 
$ inxi -Sxxx
System:
  Host: _ Kernel: 5.15.0-89-generic x86_64 bits: 64 compiler: gcc
    v: 11.4.0 Desktop: Cinnamon 5.8.4 tk: GTK 3.24.33 wm: muffin vt: 7
    dm: LightDM 1.30.0 Distro: Linux Mint 21.2 Victoria
    base: Ubuntu 22.04 jammy

I discovered it while inspecting a broken symlink such as jquerylib/lib/3.6.0/jquery-3.6.0.js in this package after it has been recorded (i.e. hardlinked) by renv into its cache, because these symlinks are defined relative. I suspect the relative symlinks (e.g. jquerylib/lib/3.6.0/jquery-3.6.0.js linking to ../../../../../../share/javascript/jquery/jquery.js) will be specific to the Ubuntu-packaged r-cran-jquerylib.

Please update 10 CRAN packages and 1 Bioconductor package

Thank you for your work on packaging so many R packages for Ubuntu! As you said in your e-mail, I'm reporting a few that are currently a bit behind CRAN and Bioconductor:

setRepositories(ind=1:4) # CRAN & BioC
subset(
 merge(
  available.packages(), installed.packages(),
  by = 'Package', suffixes=c('.available', '.installed')
 ),
 Version.available > Version.installed
)[,c('Package','Repository')]
#              Package                                              Repository
# 24          antiword                 https://cloud.r-project.org/src/contrib
# 154             coda                 https://cloud.r-project.org/src/contrib
# 163       commonmark                 https://cloud.r-project.org/src/contrib
# 197       data.table                 https://cloud.r-project.org/src/contrib
# 237          distrEx                 https://cloud.r-project.org/src/contrib
# 264            edgeR https://bioconductor.org/packages/3.18/bioc/src/contrib
# 511           igraph                 https://cloud.r-project.org/src/contrib
# 612          littler                 https://cloud.r-project.org/src/contrib
# 697  MplusAutomation                 https://cloud.r-project.org/src/contrib
# 1145              sp                 https://cloud.r-project.org/src/contrib
# 1225       tidygraph                 https://cloud.r-project.org/src/contrib

I can see r-cran-littler being available in https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/, but the one in https://r2u.stat.illinois.edu/ubuntu jammy/main has a larger APT priority on the docker.io/rocker/r2u container.

r-cran-nlme version conflict prevents installing r-recommended

Hi,

I suspect the r-cran-nlme package on the r2u repository should have version number 3.1-157 instead of 3.1.157. Here is why I have this suspicion:

On a new ubuntu 22.04 system, I followed the r2u instructions to get R set up with r2u. I did not have R installed in the system.

I followed the README instructions. You can see below the relevant apt repositories and pinning set as documented:

$ cat /etc/apt/sources.list.d/cranapt.list
deb [arch=amd64] https://dirk.eddelbuettel.com/cranapt jammy main
$ cat /etc/apt/sources.list.d/cran-ubuntu.list 
deb [arch=amd64] https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/
$  cat /etc/apt/preferences.d/99cranapt 
Package: *
Pin: origin "dirk.eddelbuettel.com"
Pin-Priority: 700

When I try to install r-base (after a successful apt update):

$ sudo apt install r-base
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-base : Depends: r-recommended (= 4.2.0-1.2204.0) but it is not installable
E: Unable to correct problems, you have held broken packages.

My apt skills are limited, but I then try to install r-recommended to try to see what's going on:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-recommended : Depends: r-cran-nlme (>= 3.1.52) but 3.1-157-1.ca2204.1 is to be installed
E: Unable to correct problems, you have held broken packages.

If I apt show -a r-cran-nlme I see:

$ apt show -a r-cran-nlme
Package: r-cran-nlme
Version: 3.1.157-1.2204.0
Priority: optional
Section: gnu-r
Source: nlme
Maintainer: Dirk Eddelbuettel <[email protected]>
Installed-Size: 2807 kB
Depends: r-base-core (>= 4.2.0-1.2204.0), r-api-4.0, r-cran-lattice (>= 0.12-11.1), libc6 (>= 2.35)
Replaces: r-recommended (<< 1.9.0)
Homepage: https://cran.r-project.org/package=nlme
Download-Size: 2217 kB
APT-Sources: https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ Packages
Description: GNU R package for (non-)linear mixed effects models
 This package provides functions to fit and compare linear and non-linear
 mixed-effects models.
 .
 This package is part of the set of packages that are 'recommended'
 by R Core and shipped with upstream source releases of R itself.

Package: r-cran-nlme
Version: 3.1.155-1
Priority: optional
Section: universe/math
Source: nlme
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Dirk Eddelbuettel <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2831 kB
Depends: r-base-core (>= 4.1.2-1ubuntu1), r-api-4.0, r-cran-lattice (>= 0.12-11.1), libc6 (>= 2.29)
Replaces: r-recommended (<< 1.9.0)
Homepage: https://cran.r-project.org/package=nlme
Download-Size: 2235 kB
APT-Sources: http://es.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
Description: GNU R package for (non-)linear mixed effects models
 This package provides functions to fit and compare linear and non-linear
 mixed-effects models.
 .
 This package is part of the set of packages that are 'recommended'
 by R Core and shipped with upstream source releases of R itself.

Package: r-cran-nlme
Version: 3.1-157-1.ca2204.1
Priority: optional
Section: gnu-r
Maintainer: Dirk Eddelbuettel <[email protected]>
Installed-Size: 2811 kB
Depends: libc6 (>= 2.35), r-base-core (>= 4.2.0), r-api-4.0, r-cran-lattice
Suggests: r-cran-hmisc, r-cran-mass, r-cran-sasmixed
Homepage: https://cran.r-project.org/package=nlme
Download-Size: 2230 kB
APT-Sources: https://dirk.eddelbuettel.com/cranapt jammy/main amd64 Packages
Description: CRAN Package 'nlme' (Linear and Nonlinear Mixed Effects Models)
 Fit and compare Gaussian linear and nonlinear mixed-effects models.

Comparing version numbers for my three entries (ubuntu repositories, CRAN ppa, r2u ppa), shouldn't the r2u entry be 3.1.157 instead of 3.1-157?

I will learn to force some package versions and make things work, I can manage, but I'm surprised it's not working and I'd like to give this feedback just in case this is unexpected or a typo...

Thanks

devEMF has graphics API version mismatch with current R

Using the r2u version of devEMF 4.4.1 reports the following issue when using it with R 4.3.1 in Docker:

Error in emf(file = Filenameemf, width = width, height = height, :
Graphics API version mismatch

This seems similar to the issue #42

add_cranapt_jammy script: bspm config issue

Very enthusiastic about this project thank you for making it happen.

I just used the add_cranapt_jammy.sh script on a fresh ubuntu 22.04 install (R version 4.2.1 (2022-06-23))
and encountered and issue that after script installation install.packages() is left in a non functional state.

I looked at the bspm site and I think it may be a due change in options there, or possibly a difference between
attended and unattended installations.

# after running script
install.packages("curl")
# results in "Error in install.packages : cannot connect to the system package manager"
# applying the following to fix:
options(bspm.sudo = FALSE)
install.packages("curl")
Install system packages...

I've modified the changes the script made to my /etc/R/Rprofile.set by this script to remove the line

options(bspm.sudo=TRUE)

and everything now seems to work well, so thank you. I'm not 100% sure that this is the most technically correct thing to do but bspm installation instructions no longer reference the option bspm.sudo.

pandoc missing when installing rmarkdown

Thank you for creating r2u. I recently found out about it and I'm impressed by the speed of the installations and the ease of use.

My first assumption was that all system requirements (including those mentioned in the DESCRIPTION file of the package) would be installed. However, when installing rmarkdown, I noticed that pandoc was not installed. Is this a bug or a deliberate choice?

Example Dockerfile:

FROM rocker/r2u:22.04
RUN R -e "install.packages('rmarkdown')"
RUN R -e "rmarkdown::pandoc_available()"

vdiffr has graphics API version mismatch with current R

Not sure if I analysed the situation correctly, but it seems that r-cran-vdiffr in r2u for jammy needs a rebuild, as it fails to work with R 4.3.1:

https://app.travis-ci.com/github/jranke/mkin/builds/265560310

You can see that R 4.3.1-4 is installed on line 695:

https://app.travis-ci.com/github/jranke/mkin/builds/265560310#L695

and the following lines illustrate (I think) that vdiffr comes from r2u:

https://app.travis-ci.com/github/jranke/mkin/builds/265560310#L1711
https://app.travis-ci.com/github/jranke/mkin/builds/265560310#L1793

I am a bit confused, because in the log, the package is retrieved after it has been set up. Presumably just a matter of output buffering.

Am I correct to assume that a rebuild of vdiffr in r2u would fix this?

Thankful for all of these amazing tools, as always,

Johannes

InRelease repository is unsigned?

Error: The repository 'http://ppa.launchpad.net/edd/misc/ubuntu jammy InRelease' is not signed.
Warning: GPG error: http://ppa.launchpad.net/edd/misc/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 67C2D66C4B1D4339

support Debian?

Dear Dirk,

Nice project for the hurried R user.

It would be nice to support Debian.
Ubuntu being a Debian derivative, I even wonder if supporting Debian first
would not have given you Ubuntu being supported for free.

Regards,
F.

Uninstall/removal instructions

Hey, this works well generally, but I ran into some problems on a laptop that I couldn't really be bothered debugging. I think I got through the removal process semi-okay by trial and error but it would be good to have some explicit ones.

The steps I followed were:

  1. remove.packages("bspm") or the system package r-cran-bspm
  2. remove the bspm package folder from your library if 1. is not successful
  3. remove bspm::enable() from your Rprofile.site
  4. Remove the cran_apt listings from your sources, eg by rm /etc/apt/sources.list.d/cran_apt.list

Problem with running install.packages()

Hi,

After installing r2u, according to this, in a clean R session inside Ubuntu terminal, when trying to install any packages e.g. :
install.packages("BiocManager")

I see the following error:

Error: dbus: Call failed: Launch helper exited with unknown return code 1

I checked the /var/log/syslog and I found this error:

Traceback (most recent call last):
 org.r_project.linux1[44262]:   File "/usr/local/lib/R/site-library/bspm/service/bspm.py", line 150, in <module>
 org.r_project.linux1[44262]:     read_conf()
 org.r_project.linux1[44262]:   File "/usr/local/lib/R/site-library/bspm/service/bspm.py", line 16, in read_conf
 org.r_project.linux1[44262]:     conf = backend.discover()
 org.r_project.linux1[44262]:   File "/usr/local/lib/R/site-library/bspm/service/backend/apt.py", line 15, in discover
 org.r_project.linux1[44262]:     cache_update(partial(cache.update, aprogress), force=True)
org.r_project.linux1[44262]:   File "/usr/local/lib/R/site-library/bspm/service/backend/_utils.py", line 33, in cache_update
 org.r_project.linux1[44262]:     method()
 org.r_project.linux1[44262]:   File "/usr/lib/python3/dist-packages/apt/cache.py", line 573, in update
org.r_project.linux1[44262]:     raise FetchFailedException(e) 
dbus-daemon[726]: [system] Activated service 'org.r_project.linux1' failed: Launch helper exited with unknown return code 1

The R version is
R version 4.3.2 (2023-10-31) -- "Eye Holes"

The operating system:
Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy

Any help would be greatly appreciated!

49 pkgs can't be installed because they are in official jammy/universe for R-4.1 but not in r2u

The r-bioc-affxparser package is not included in your r2u packages probably because no CRAN package depends on it.

However it is part of the ubuntu jammy universe repository https://packages.ubuntu.com/jammy/r-bioc-affxparser

And since ubuntu jammy ships with R-4.1, the package is not installable on an R-4.2 system:

$ sudo apt install r-bioc-affxparser 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-bioc-affxparser : Depends: r-api-bioc-3.14
E: Unable to correct problems, you have held broken packages.

Could you extend your r2u inclusion criteria to all those bioconductor packages already in ubuntu jammy? I took the 99 "r-bioc-" packages from https://packages.ubuntu.com/search?suite=jammy&arch=amd64&searchon=names&keywords=r-bioc- and with a rudimentary script I filtered out those already in r2u. If I am not mistaken, I would be asking you to include 49 additional packages in r2u that since they are already in ubuntu jammy they are not installable on my system via apt:

r-bioc-affxparser
r-bioc-altcdfenvs
r-bioc-arrayexpress
r-bioc-ballgown
r-bioc-basilisk.utils
r-bioc-bioccheck
r-bioc-biocviews
r-bioc-bitseq
r-bioc-bladderbatch
r-bioc-cner
r-bioc-ctc
r-bioc-cummerbund
r-bioc-dada2
r-bioc-degnorm
r-bioc-degreport
r-bioc-demixt
r-bioc-deseq
r-bioc-destiny
r-bioc-dexseq
r-bioc-dir.expiry
r-bioc-dirichletmultinomial
r-bioc-drimseq
r-bioc-dropletutils
r-bioc-dupradar
r-bioc-ebseq
r-bioc-edaseq
r-bioc-eir
r-bioc-experimenthub
r-bioc-fishpond
r-bioc-genelendatabase
r-bioc-genomeinfodbdata
r-bioc-genomicfiles
r-bioc-ggbio
r-bioc-glmgampoi
r-bioc-goseq
r-bioc-grohmm
r-bioc-hilbertvis
r-bioc-hsmmsinglecell
r-bioc-htsfilter
r-bioc-hypergraph
r-bioc-ihw
r-bioc-ioniser
r-bioc-isoformswitchanalyzer
r-bioc-lpsymphony
r-bioc-makecdfenv

I'll get those packages straight from Bioconductor if I need them, but I feel it would make sense to cover those and they are not that many (I'm assuming the build process is mostly automated)

Thanks

Possible package missing from repo: r-cran-r2rtf

Tried running an update on Ubuntu 22.04LTS today and got this error:

$ sudo apt update
Hit:1 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ InRelease
...
Ign:9 https://r2u.stat.illinois.edu/ubuntu jammy InRelease                                                                 
...
Hit:14 http://archive.ubuntu.com/ubuntu jammy-backports InRelease                         
Get:18 http://archive.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
...
Fetched 231 kB in 2s (146 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
2 packages can be upgraded. Run 'apt list --upgradable' to see them.

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  r-cran-r2rtf
The following packages have been kept back:
  firmware-sof-signed
The following packages will be upgraded:
  r-cran-gsdesign
1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 323 kB/1,764 kB of archives.
After this operation, 502 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Err:1 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-r2rtf all 1.1.0-1.ca2204.1
  404  Not Found [IP: 192.17.190.167 443]
E: Failed to fetch https://r2u.stat.illinois.edu/ubuntu/pool/dists/jammy/main/r-cran-r2rtf_1.1.0-1.ca2204.1_all.deb  404  Not Found [IP: 192.17.190.167 443]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

The strange thing is that I can get the deb file directly using a web browser and going to https://r2u.stat.illinois.edu/ubuntu/pool/dists/jammy/main/, but not with wget or curl.

Can't install sf

Hi !

Thanks for this great piece of software. I'm using it to build a custom docker image to ensure a standard & reproducible working environment. So far I can configure my dockerfile to pre-install the required packages.

Everything works as expected and once I'm into my container I can also install new packages thanks to bpsm using install.packages("<pkg_name>") or directly from terminal using sudo apt-get install r-cran-<pkg_name>.

However if I try to install package sf from my container I get an error :

$ sudo apt-get install r-cran-sf
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-cran-sf : Depends: libgdal29 (>= 3.3.0) but it is not installable
             Depends: libgeos-c1v5 (>= 3.9.0) but it is not going to be installed
             Depends: libproj19 (>= 7.1.0) but it is not installable
E: Unable to correct problems, you have held broken packages.

From your documentation I can see that there was an issue with sf and that it was solved :

  • [DONE] Both sf and terra needed a dependency adjustment on 'focal' for their most recent versions.

But I don't see what should I do in order to allow sf to be installed?

Here is an excerpt of the dockerfile used to build the container:

ARG r_version="4.2.1"
ENV R_VERSION=${r_version}
ENV R_BASE_VERSION=${R_VERSION}

USER 0 
RUN apt-get update \
	&& apt-get install -y --no-install-recommends \
		software-properties-common \
                dirmngr \
                ed \
		less \
		locales \
		vim-tiny \
		wget \
		ca-certificates \
        && add-apt-repository --enable-source --yes "ppa:marutter/rrutter4.0" \
        && add-apt-repository --enable-source --yes "ppa:c2d4u.team/c2d4u4.0+"

RUN apt-get update \
        && apt-get install -y --no-install-recommends \
                 littler \
		r-base=${R_BASE_VERSION}-* \
		r-base-dev=${R_BASE_VERSION}-* \
        r-base-core=${R_BASE_VERSION}-* \
		r-recommended=${R_BASE_VERSION}-* \
                 r-cran-docopt \
  	&& ln -s /usr/lib/R/site-library/littler/examples/install.r /usr/local/bin/install.r \
 	&& ln -s /usr/lib/R/site-library/littler/examples/install2.r /usr/local/bin/install2.r \
 	&& ln -s /usr/lib/R/site-library/littler/examples/installGithub.r /usr/local/bin/installGithub.r \
 	&& ln -s /usr/lib/R/site-library/littler/examples/testInstalled.r /usr/local/bin/testInstalled.r \
 	&& rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
 	&& rm -rf /var/lib/apt/lists/*

RUN add-apt-repository --yes "ppa:edd/r-4.0" \
	&& apt-get install -y --no-install-recommends \
                sudo \
                r-cran-bspm \
        && echo "suppressMessages(bspm::enable())" >> /etc/R/Rprofile.site \
        && echo "options(bspm.sudo=TRUE)" >> /etc/R/Rprofile.site \
        && echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/90local-no-recommends \
        && echo "docker ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/local-docker-user \
        && chmod 0440 /etc/sudoers.d/local-docker-user \
        && chgrp 1000 /usr/local/lib/R/site-library \
        && install.r remotes

and the session info from within my container :

> sessionInfo()
R version 4.2.1 (2022-06-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.5 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
[1] timetk_2.8.1    lubridate_1.8.0 R6_2.5.1       

loaded via a namespace (and not attached):
 [1] zoo_1.8-10         tidyselect_1.1.2   purrr_0.3.4        listenv_0.8.0     
 [5] splines_4.2.1      bspm_0.3.10        lattice_0.20-45    colorspace_2.0-3  
 [9] vctrs_0.4.1        generics_0.1.3     rsample_1.1.0      utf8_1.2.2        
[13] survival_3.4-0     prodlim_2019.11.13 rlang_1.0.5        pillar_1.8.1      
[17] glue_1.6.2         withr_2.5.0        lifecycle_1.0.2    lava_1.6.10       
[21] timeDate_4021.104  munsell_0.5.0      gtable_0.3.1       future_1.28.0     
[25] recipes_1.0.1      codetools_0.2-18   parallel_4.2.1     class_7.3-20      
[29] fansi_1.0.3        furrr_0.3.1        xts_0.12.1         Rcpp_1.0.9        
[33] scales_1.2.1       ipred_0.9-13       parallelly_1.32.1  ggplot2_3.3.6     
[37] digest_0.6.29      dplyr_1.0.10       grid_4.2.1         hardhat_1.2.0     
[41] cli_3.4.0          tools_4.2.1        magrittr_2.0.3     tibble_3.1.7      
[45] tidyr_1.2.1        future.apply_1.9.1 pkgconfig_2.0.3    MASS_7.3-58.1     
[49] ellipsis_0.3.2     Matrix_1.5-1       gower_1.0.0        rstudioapi_0.14   
[53] globals_0.16.1     rpart_4.1.16       nnet_7.3-17        compiler_4.2.1   

Thanks for your support.

Best regards!

Source package versions installed within `{renv}`

I'm very excited for r2u as I've been running R on Ubuntu since the days of 8.04 Hardy Haron!

I leverage {renv} in almost all of my R projects. After I configured r2u successfully on my Ubuntu 20.04 laptop (and confirmed the binary packages installed without issue), I noticed that after bootstrapping an {renv} project that source versions of packages were installed after running renv::install("name_of_package") , which I believe is supposed to act as a shim to the default install.packages(). If this issue is more related to bspm, I'd be glad to move this over.

Question: best practices for installing Bioconductor packages

hi @eddelbuettel

First off, thanks a lot for r2u

I am seeking some guidance on best practices for installing Bioconductor packages and I have looked at:

Based on some of the discussions there, this is what I put together as my Dockerfile

FROM docker.io/eddelbuettel/r2u:22.04

RUN apt update -qq && \
     DEBIAN_FRONTEND=noninteractive \
     install.r \
     r-bioc-bsgenome.hsapiens.ucsc.hg38_1.4.4-1.ca2204.1_all.deb \
     r-bioc-rsamtools_2.12.0-1.ca2204.1_amd64.deb \
     r-bioc-txdb.hsapiens.ucsc.hg38.knowngene_3.15.0-1.ca2204.1_all.deb \
     BiocManager

RUN R --no-echo --no-restore --no-save -e  "BiocManager::install(c('ATACseqQC'))"

Some questions:

  1. How do I search for r-bioc-ATACseqQC-* - I could not figure that out and hence I had to have the additional line of the RUN R command in my Dockerfile. Is there an easy way to search for ATACseqQC? I do see this comment but not sure how to use it to search for ATACseqQC
  2. Should I be using rocker/r2u

Thanks in advance

Sending build context to Docker daemon  2.048kB
Step 3/3 : RUN R --no-echo --no-restore --no-save -e  "BiocManager::install(c('ATACseqQC'))"
 ---> Running in e98d8197900f
'getOption("repos")' replaces Bioconductor standard repositories, see
'help("repositories", package = "BiocManager")' for details.
Replacement repositories:
    CRAN: https://cloud.r-project.org
Bioconductor version 3.17 (BiocManager 1.30.20), R 4.3.0 (2023-04-21)
Installing package(s) 'BiocVersion', 'ATACseqQC'
Install system packages as root...
Reading package lists... Done
.
...

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

22 packages can be upgraded. Run 'apt list --upgradable' to see them.

...

Building dependency tree... Done
  Selecting previously unselected package r-cran-biocmanager.
(Reading database ... 18437 files and directories currently installed.)
Preparing to unpack .../r-cran-biocmanager_1.30.20-1.ca2204.1_all.deb ...
Unpacking r-cran-biocmanager (1.30.20-1.ca2204.1) ...
Setting up r-cran-biocmanager (1.30.20-1.ca2204.1) ...
Reading state information... Done

...

Warning: replacing previous import ‘utils::findMatches’ by ‘S4Vectors::findMatches’ when loading ‘AnnotationDbi’
....
Warning: replacing previous import ‘utils::findMatches’ by ‘S4Vectors::findMatches’ when loading ‘AnnotationDbi’
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
Warning: replacing previous import ‘utils::findMatches’ by ‘S4Vectors::findMatches’ when loading ‘AnnotationDbi’
** testing if installed package can be loaded from final location
Warning: replacing previous import ‘utils::findMatches’ by ‘S4Vectors::findMatches’ when loading ‘AnnotationDbi’
** testing if installed package keeps a record of temporary installation path
* DONE (ATACseqQC)

The downloaded source packages are in
        ‘/tmp/Rtmpqnktlw/downloaded_packages’
Old packages: 'AnnotationDbi', 'class', 'CNEr', 'DelayedArray',
  'DirichletMultinomial', 'edgeR', 'GenomeInfoDbData', 'HDF5Array',
  'KernSmooth', 'MASS', 'nnet', 'rhdf5filters', 'S4Vectors', 'seqLogo',
  'SummarizedExperiment', 'TFBSTools'
Removing intermediate container e98d8197900f
 ---> 3fbc913298b7
Successfully built 3fbc913298b7

Debian support

Hello, not an issue but rather a question : I run Debian stable on my box. Is it safe/possible for me to use r2u? How about Linux but non Ubuntu users in general? Thanks for the great effort

r2u not handling dependency for stringi?

kendonb@kendonb-Z370M-D3H:~$ sudo apt install r-cran-stringi
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
r-cran-stringi is already the newest version (1.7.6-1.ca2204.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

kendonb@kendonb-Z370M-D3H:~$ Rscript -e 'library(stringi)'
Error: package or namespace load failed for ‘stringi’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/home/kendonb/R/x86_64-pc-linux-gnu-library/4.2/stringi/libs/stringi.so':
  libicui18n.so.67: cannot open shared object file: No such file or directory
Execution halted

A workaround is to reinstall stringi from source.

r2u access slow from New Zealand

Hi Dirk,

Hope all is well - I recently upgraded a machine to 22.04 and successfully installed a large number of packages very quickly. A huge improvement over the previous system.

However the last couple of days I've noticed it has been quite slow. I'm currently switching over another machine to r2u and it's crawling:

image

Many thanks for a great system!

Package install issue with jammy

I run into some issues with Ubuntu 22.04 (jammy) but not with 20.04 (focal) and docker build fails as a result.

Dockerfile:

FROM eddelbuettel/r2u:22.04
RUN install.r shiny rmarkdown
...

Output after docker build:

Sending build context to Docker daemon  1.717MB
Step 1/9 : FROM eddelbuettel/r2u:22.04
 ---> 3a33fd542e6d
Step 2/9 : RUN install.r shiny rmarkdown
 ---> Running in 89c8be562c21
Warning messages:
1: In normalizePath(paths, "/") :
  path[1]="/usr/local/lib/R/site-library/": Operation not permitted
2: In normalizePath(paths, "/") :
  path[2]="/usr/local/lib/R/site-library/": Operation not permitted
Error: .onLoad failed in loadNamespace() for 'utils', details:
  call: system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE)
  error: cannot popen '/usr/bin/which 'uname' 2>/dev/null', probable reason 'Cannot allocate memory'
Error: .onLoad failed in loadNamespace() for 'utils', details:
  call: system(paste(which, shQuote(names[i])), intern = TRUE, ignore.stderr = TRUE)
  error: cannot popen '/usr/bin/which 'uname' 2>/dev/null', probable reason 'Cannot allocate memory'
The command '/bin/sh -c install.r shiny rmarkdown' returned a non-zero code: 1

Are certain Bioconductor packages out of date?

I've been getting some issues with using bioconductor packages related to images that should have already been solved in Bioconductor 3.17.

Looking at https://r2u.stat.illinois.edu/ubuntu/pool/dists/jammy/main/ it seems (for example) that DelayedArray was last updated on June 12th when it was updated to v0.26.3-1:

r-bioc-csaw_1.34.0-1.ca2004.2_amd64.deb            28-Apr-2023 05:30             1116136
r-bioc-decipher_2.28.0-1.ca2004.2_amd64.deb        28-Apr-2023 05:19            16072628
r-bioc-delayedarray_0.26.3-1.ca2004.1_amd64.deb    12-Jun-2023 15:25             1931432 <--
r-bioc-delayedmatrixstats_1.22.0-1.ca2004.2_all..> 28-Apr-2023 04:38              672268
r-bioc-deseq2_1.40.2-1.ca2004.1_amd64.deb          14-Jul-2023 19:57             2578212
r-bioc-diffbind_3.10.0-1.ca2004.2_amd64.deb        28-Apr-2023 13:05             7175872

However, the latest release of DelayedArray on Bioconductor 3.17 is 0.26.7 (link). This is also the version available in the posit package manager (link).

The only solution I found for now is installing DelayedArray from source, which misses the entire point of r2u.

Could it be that something is wrong with the procedure for updating the r2u apt repository, or is this intended behaviour?

Thank you for taking the time to look into this issue.

can 'install.packages("bspm")' be used if bspm is not installed?

This may just be a documentation issue. In "step 5" of your setup instructions you say to run

Rscript -e 'install.packages("bspm")'

But bpsm is installed so the user can use install.packages(), right? Catch-22? The script in "Step 5" failed for me but
apt install r-cran-bspm from the console worked fine and install.packages() worked thereafter so no worries.

typical time lag for updating package versions?

I definitely don't want to look a gift horse in the mouth, but ... some people are reporting problems because the current r2u versions of RcppEigen and lme4 are out of sync (the recently superseded version of lme4, 1.1-34, won't work with the new version of RcppEigen). I've tried to suggest workarounds, but having lme4 updated to at least 1.1-35 would forestall a lot of queries.

Is there a general rule for how often packages get updated/time lag between CRAN release and r2u availability, or is it "when Dirk gets a chance"?

sf: WARNING: different compile-time and runtime versions for GEOS found

Hi Dirk

I get some warnings with the r2u version of sf, with the infamous message: WARNING: different compile-time and runtime versions for GEOS found:, which triggered some unusual warnings with st_read (example code taken from help page of st_read).

Solution I found was to install myself sf from CRAN, disabling bspm: bspm::disable(); install.packages(c("sf")). I guess that would be a rather tricky issue to address at the r2u level?

Thanks!

output with r2u sf

library(sf)
#> Linking to GEOS 3.10.2, GDAL 3.0.4, PROJ 6.3.1; sf_use_s2() is TRUE
#> WARNING: different compile-time and runtime versions for GEOS found:
#> Linked against: 3.10.2-CAPI-1.16.0 compiled against: 3.8.0-CAPI-1.13.1
#> It is probably a good idea to reinstall sf, and maybe rgeos and rgdal too
dang::shadowedPackages()
#>    Package                                         LibPath Version n  good
#> 1:    bspm /home/matifou/R/x86_64-pc-linux-gnu-library/4.2 0.4.2.3 2  TRUE
#> 2:    bspm                   /usr/local/lib/R/site-library   0.4.2 2 FALSE

## from ?st_read
nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)
wkt = st_as_text(st_geometry(nc[1,]))
st_read(system.file("gpkg/nc.gpkg", package="sf"), wkt_filter = wkt, quiet = TRUE)
#> Warning in CPL_read_ogr(dsn, layer, query, as.character(options), quiet, : GDAL
#> Error 1: SQLite error on SELECT name, ellipsoid_auth_name, ellipsoid_code,
#> prime_meridian_auth_name, prime_meridian_code, area_of_use_auth_name,
#> area_of_use_code, publication_date, deprecated FROM geodetic_datum WHERE
#> auth_name = ? AND code = ?: no such column: area_of_use_auth_name
#> Warning in CPL_read_ogr(dsn, layer, query, as.character(options), quiet, : GDAL
#> Message 1: Unable to parse srs_id '4267' well-known text
#> 'GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke
#> 1866",6378206.4,294.9786982138982,AUTHORITY["EPSG","7008"]],EXTENSION["PROJ4_GRIDS","@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat"],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]]'
#> Simple feature collection with 4 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -81.91116 ymin: 35.98933 xmax: -80.87086 ymax: 36.58965
#> CRS:           NA
#>    AREA PERIMETER CNTY_ CNTY_ID      NAME  FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.081     1.288  1880    1880   Watauga 37189  37189       95  1323     1
#> 2 0.114     1.442  1825    1825      Ashe 37009  37009        5  1091     1
#> 3 0.199     1.984  1874    1874    Wilkes 37193  37193       97  3146     4
#> 4 0.061     1.231  1827    1827 Alleghany 37005  37005        3   487     0
#>   NWBIR74 BIR79 SID79 NWBIR79                           geom
#> 1      17  1775     1      33 MULTIPOLYGON (((-81.80622 3...
#> 2      10  1364     0      19 MULTIPOLYGON (((-81.47276 3...
#> 3     200  3725     7     222 MULTIPOLYGON (((-81.02057 3...
#> 4      10   542     3      12 MULTIPOLYGON (((-81.23989 3...

Created on 2023-02-19 with reprex v2.0.2

output with CRAN sf

bspm::disable()
install.packages(c("sf"))
#> Installing package into '/home/matifou/R/x86_64-pc-linux-gnu-library/4.2'
#> (as 'lib' is unspecified)
library(sf)
#> Linking to GEOS 3.10.2, GDAL 3.4.3, PROJ 8.2.0; sf_use_s2() is TRUE
dang::shadowedPackages()
#>    Package                                         LibPath Version n  good
#> 1:    bspm /home/matifou/R/x86_64-pc-linux-gnu-library/4.2 0.4.2.3 2  TRUE
#> 2:    bspm                   /usr/local/lib/R/site-library   0.4.2 2 FALSE
#> 3:      sf /home/matifou/R/x86_64-pc-linux-gnu-library/4.2   1.0.9 2  TRUE
#> 4:      sf                         /usr/lib/R/site-library   1.0.9 2  TRUE

## from ?st_read
nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)
wkt = st_as_text(st_geometry(nc[1,]))
st_read(system.file("gpkg/nc.gpkg", package="sf"), wkt_filter = wkt, quiet = TRUE)
#> Simple feature collection with 4 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -81.91116 ymin: 35.98933 xmax: -80.87086 ymax: 36.58965
#> Geodetic CRS:  NAD27
#>    AREA PERIMETER CNTY_ CNTY_ID      NAME  FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.081     1.288  1880    1880   Watauga 37189  37189       95  1323     1
#> 2 0.114     1.442  1825    1825      Ashe 37009  37009        5  1091     1
#> 3 0.199     1.984  1874    1874    Wilkes 37193  37193       97  3146     4
#> 4 0.061     1.231  1827    1827 Alleghany 37005  37005        3   487     0
#>   NWBIR74 BIR79 SID79 NWBIR79                           geom
#> 1      17  1775     1      33 MULTIPOLYGON (((-81.80622 3...
#> 2      10  1364     0      19 MULTIPOLYGON (((-81.47276 3...
#> 3     200  3725     7     222 MULTIPOLYGON (((-81.02057 3...
#> 4      10   542     3      12 MULTIPOLYGON (((-81.23989 3...

Created on 2023-02-19 with reprex v2.0.2

Security vulnerability found in python3.10

Hi Dirk,

A recent build on ECR that used snyk to scan for vulnerabilities flagged a high severity vulnerability related to Python 3.10 libraries that is fixed in version 3.10.6-1.

Link to full description of the vulnerability: https://security.snyk.io/vuln/SNYK-UBUNTU2204-PYTHON310-3098759

Impacted docker images: eddelbuettel/r2u:22.04 and eddelbuettel/r2u:jammy

Proposed fix: Upgrade Ubuntu:22.04 python3.10 to version 3.10.6-1~22.04.1 or higher. apt upgrade in the Dockerfile should take care of this and a new push to registry.

Thanks! These images are still the best.

Error when installing Bioconductor packages

Hi Dirk!

Thanks for creating r2u! It has sped up the build times of our images significantly (From >30 mins to <5 mins?) !

Since the last update of eddelbuettel/r2u:22.04 (more specifically, "eddelbuettel/r2u@sha256:a4899fc475905331ff8a66f7bcbcefa261be1bd16447a34937df00c8a64af028"), I get the following error message when installing any Bioconductor package:

$ docker run eddelbuettel/r2u:22.04 Rscript -e 'install.packages("BiocParallel")'
Available system packages as root...
Get:1 https://ppa.launchpadcontent.net/c2d4u.team/c2d4u4.0+/ubuntu jammy InRelease [18.1 kB]
Hit https://ppa.launchpadcontent.net/edd/misc/ubuntu jammy InRelease            
Get:2 https://ppa.launchpadcontent.net/marutter/rrutter4.0/ubuntu jammy InRelease [17.5 kB]
Get:3 https://ppa.launchpadcontent.net/c2d4u.team/c2d4u4.0+/ubuntu jammy/main amd64 Packages [993 kB]
Ign https://r2u.stat.illinois.edu/ubuntu jammy InRelease                        
Get:4 https://r2u.stat.illinois.edu/ubuntu jammy Release [5713 B]               
Get:5 https://ppa.launchpadcontent.net/marutter/rrutter4.0/ubuntu jammy/main amd64 Packages [7623 B]
Get:6 https://r2u.stat.illinois.edu/ubuntu jammy Release.gpg [793 B]            
Get:7 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 Packages [2222 kB]  
Get:8 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]       
Get:9 https://r2u.stat.illinois.edu/ubuntu jammy/main all Packages [6923 kB]    
Get:10 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [798 kB]
Get:11 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [754 kB]
Hit http://archive.ubuntu.com/ubuntu jammy InRelease                            
Get:12 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]        
Get:13 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [107 kB]      
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1008 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1078 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [22.4 kB]
Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [49.0 kB]
Fetched 14.2 MB in 6s (24.0 kB/s)                                               
Error in dbs[bins, "Version"] : subscript out of bounds
Calls: install.packages -> .doTrace -> eval.parent -> eval -> eval
Execution halted

This did work with a previous version of r2u:

$ docker run 'eddelbuettel/r2u@sha256:1d3a92aab5abad11787cd6b6c9479960db9f4e56dcc7f837768da2e3f3c4dfe2' Rscript -e 'install.packages("BiocParallel")'
Install system packages as root...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Get:1 https://ppa.launchpadcontent.net/c2d4u.team/c2d4u4.0+/ubuntu jammy InRelease [18.1 kB]
Get:2 https://ppa.launchpadcontent.net/edd/misc/ubuntu jammy InRelease [18.1 kB]
...
Setting up r-cran-bh (1.81.0-1-1.ca2204.1) ...
Setting up r-cran-snow (0.4-4-1.ca2204.1) ...
Setting up r-cran-cpp11 (0.4.3-1.ca2204.1) ...
Setting up r-cran-futile.options (1.0.1-1.ca2204.1) ...
Setting up r-cran-formatr (1.14-1.ca2204.1) ...
Setting up r-cran-lambda.r (1.2.4-1.ca2204.1) ...
Setting up r-cran-futile.logger (1.4.3-1.ca2204.1) ...
Setting up r-bioc-biocparallel (1.32.4-1.ca2204.1) ...
Reading state information... Done
Get:1 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-formatr all 1.14-1.ca2204.1 [151 kB]
Get:2 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-lambda.r all 1.2.4-1.ca2204.1 [110 kB]
Get:3 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-futile.options all 1.0.1-1.ca2204.1 [19.4 kB]
Get:4 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-futile.logger all 1.4.3-1.ca2204.1 [94.6 kB]
Get:5 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-snow all 0.4-4-1.ca2204.1 [95.7 kB]
Get:6 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-bh all 1.81.0-1-1.ca2204.1 [8778 kB]
Get:7 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-cpp11 all 0.4.3-1.ca2204.1 [225 kB]
Get:8 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-bioc-biocparallel amd64 1.32.4-1.ca2204.1 [1350 kB]
Fetched 10.8 MB in 0s (0 B/s)

Am I doing something wrong or is this a bug?

Robrecht

cc @KaiWaldrant

broken dependencies?

With the usual apologies if this is the wrong venue for this question ...

I just installed the latest r-base-core via apt-get upgrade (on Pop!_OS 22.04 LTS, which is an Ubuntu derivative):

apt list r-base-core
r-base-core/jammy-cran40,now 4.3.1-3.2204.0 amd64 [residual-config]

Many packages were removed. When I try to reinstall them I get (for example):

$ sudo apt-get install r-cran-tibble
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies:
 r-base-core : Breaks: r-cran-tibble (< 3.2.1+dfsg-2~) but 3.2.1-1.ca2204.1 is to be installed
E: Unable to correct problems, you have held broken packages.

When I install via bspm I get:

> install.packages("tibble")
Error: dbus: Call failed: Could not activate remote peer: unit failed.

When I disable bspm I am able to install tibble as usual, at the price of the usual giant compilation of lots of packages ...

Happy to provide any additional information/diagnostics that would be useful ...

Requesting 79 Bioconductor packages

Hi!

While installing a large number of packages from both CRAN and Bioconductor on a container running the docker.io/rocker/r2u image, I got some of the Bioconductor dependencies from source. I can start a fresh copy of the container and run:

# podman run -it docker.io/rocker/r2u
apt update && apt -y full-upgrade
R -e 'setRepositories(ind=1:4); install.packages(c(
"derfinderHelper", "EBarrays", "RTCGA", "sesameData", "GenomicScores",
"derfinder", "splots", "NanoStringNCTools", "org.Rn.eg.db", "biocthis",
"geNetClassifier", "gDRtestData", "RTCGA.miRNASeq", "CytoML",
"BioNet", "rols", "pRolocdata", "sesame", "RTCGA.mutations",
"JASPAR2020", "LOLA", "msdata", "CAMERA", "RMassBankData", "Homo.sapiens",
"PFAM.db", "ALLMLL", "gDRutils", "RTCGA.CNV", "JASPAR2018", "drawProteins",
"hgu133plus2.db", "RBioFormats", "grasp2db", "phastCons100way.UCSC.hg38",
"RTCGA.rnaseq", "simpIntLists", "rpx", "microRNA", "gDRstyle",
"MotifDb", "wiggleplotr", "hgu95av2.db", "JASPAR2014", "KOdata",
"faahKO", "flowWorkspaceData", "DAPARdata", "RTCGA.RPPA", "recount",
"RTCGA.methylation", "MafH5.gnomAD.v3.1.2.GRCh38", "pRoloc",
"humanStemCell", "cellHTS2", "org.Bt.eg.db", "SPIA", "RTCGA.mRNA",
"RTCGA.clinical", "human.db0", "rae230aprobe", "org.Sc.sgd.db",
"GeomxTools", "lydata", "ChemmineOB", "MafDb.1Kgenomes.phase1.hs37d5",
"rsbml", "biodb", "ReportingTools", "gwascat", "rae230a.db",
"humanCHRLOC", "hgu133a.db", "HubPub", "pasilla", "DAPAR", "SNPlocs.Hsapiens.dbSNP144.GRCh37",
"JASPAR2016", "CCl4"
))'

It will say Install system packages as root... twice, install a number of *.deb packages on the second run and then install the remaining packages from source (some of these are large and may benefit from an increased download timeout). I plucked the source package names from the console by grepping for ^trying URL. I really appreciate installing only these 79 packages from source instead of all the 1316 dependencies, and I would be grateful if you package these ones too. Please let me know if I can help!

Speaking of system dependencies,

  • CytoML wants libxml2 (and will fail to compile without libxml/tree.h)
  • ChemmineOB wants libopenbabel and Eigen (and will fail to compile without openbabel/obutil.h and Eigen/Core)
  • rsbml wants libsbml (and will fail to configure without a corresponding .pc file)

guidelines on using newer r2u simultaneously with older CRAN packages?

Dirk thanks for this great package, works very well!

Could you please share your advice on using simultaneously r2u and standard install.packages() commands without bspm? Currently I have both, and as "~/R/x86_64-pc-linux-gnu-library/4.2" is first in .libPaths() is first, R might uses older versions in "~/R/x86_64-pc-linux-gnu-library/4.2" rather than newer installed by r2u.

So my questions are:

  • If one sticks with using a mix of install.packages() without bspm and r2u, do you recommend changing `.libPaths()?
  • If one decides instead to use bspm, I guess one will need to remove all packages in "~/R/x86_64-pc-linux-gnu-library/4.2" and even in "/usr/local/lib/R/site-library", as older versions there would take precedence over r2u packages? Is my understanding correct that bpsm will have install.packages() in /usr/lib/R/site-library, but remove.packages("xxx") under bpsm is left unaffected and will remove from the first repo? Does this mean I should look for all packages in either "~/R/x86_64-pc-linux-gnu-library/4.2" and "/usr/local/lib/R/site-library", check those installed by install.packages (i.e. exclude the github ones), remove them, then install again?

Thanks!!

libPath conflict in Ubuntu 22.04 between r2u default site-library and R console and RStudio paths

I've been struggling a bit with packages that seem to have been successfully downloaded but cannot be found. Another pilgrim surfaced with the same issue on community.rstudio.com. If this is expected behavior, maybe just a README note. Otherwise, please think about it?

As @hunsicker describes his setup

Evidently the system is now installing the compiled R packages into /usr/lib/R/site-library rather than into my personal R library. Since update.packages() looks first in my personal R library, it finds an old version and doesn't look further to see if there is a newer version in the site library. As a result, the package is never effectively updated.

We don't have exactly similar configs. My .libPath looks like

> .libPaths() [1] "/home/roc/R/x86_64-pc-linux-gnu-library/4.2" [2] "/usr/local/lib/R/site-library" [3] "/usr/local/lib/R/library"

and r2u is installing to /usr/lib/R/site-library.

Is it just a matter of linking everything in .libPaths to that directory, or is it better to fiddle with env and profile to set things right?

Some packages fail to install

Some packages, e.g. ggplot2 fail to install:

Minimal example:

FROM eddelbuettel/r2u:22.04
RUN sudo apt-get -y install r-cran-ggplot2

output:

 docker build . -t cronicle -f ./Dockerfile --platform linux/amd64                                                                                  13:42:32
[+] Building 11.0s (5/5) FINISHED                                                                                                                                                     
 => [internal] load build definition from Dockerfile                                                                                                                             0.0s
 => => transferring dockerfile: 1.10kB                                                                                                                                           0.0s
 => [internal] load .dockerignore                                                                                                                                                0.0s
 => => transferring context: 2B                                                                                                                                                  0.0s
 => [internal] load metadata for docker.io/eddelbuettel/r2u:22.04                                                                                                                0.2s
 => CACHED [1/2] FROM docker.io/eddelbuettel/r2u:22.04@sha256:1d3a92aab5abad11787cd6b6c9479960db9f4e56dcc7f837768da2e3f3c4dfe2                                                   0.0s
 => ERROR [2/2] RUN sudo apt-get -y install r-cran-ggplot2                                                                                                                      10.7s
------                                                                                                                                                                                
 > [2/2] RUN sudo apt-get -y install r-cran-ggplot2:                                                                                                                                  
#5 0.638 Reading package lists...                                                                                                                                                     
#5 5.752 Building dependency tree...                                                                                                                                                  
#5 6.551 Reading state information...                                                                                                                                                 
#5 7.202 The following additional packages will be installed:                                                                                                                         
#5 7.202   r-cran-cli r-cran-colorspace r-cran-digest r-cran-fansi r-cran-farver
#5 7.202   r-cran-glue r-cran-gtable r-cran-isoband r-cran-labeling r-cran-lifecycle
#5 7.202   r-cran-magrittr r-cran-munsell r-cran-pillar r-cran-pkgconfig r-cran-r6
#5 7.202   r-cran-rcolorbrewer r-cran-rlang r-cran-scales r-cran-tibble r-cran-utf8
#5 7.203   r-cran-vctrs r-cran-viridislite r-cran-withr
#5 7.206 Suggested packages:
#5 7.206   r-cran-callr r-cran-covr r-cran-htmltools r-cran-htmlwidgets r-cran-knitr
#5 7.206   r-cran-mockery r-cran-processx r-cran-ps r-cran-rmarkdown r-cran-rprojroot
#5 7.206   r-cran-rstudioapi r-cran-testthat r-cran-whoami r-cran-kernlab
#5 7.206   r-cran-mvtnorm r-cran-vcd r-cran-shiny r-cran-shinyjs r-cran-dplyr
#5 7.206   r-cran-png r-cran-jpeg r-cran-rcartocolor r-cran-scico r-cran-viridis
#5 7.206   r-cran-wesanderson r-cran-tinytest r-cran-simplermarkdown r-cran-unitizer
#5 7.206   r-cran-ragg r-cran-ggplot2movies r-cran-hexbin r-cran-hmisc r-cran-interp
#5 7.206   r-cran-mapproj r-cran-maps r-cran-maptools r-cran-multcomp r-cran-profvis
#5 7.206   r-cran-quantreg r-cran-rgeos r-cran-sf r-cran-svglite r-cran-vdiffr
#5 7.206   r-cran-xml2 r-cran-crayon r-cran-dbi r-cran-forcats r-cran-microbenchmark
#5 7.206   r-cran-r.utils r-cran-rprintf r-cran-rsqlite r-cran-stringr r-cran-waldo
#5 7.206   r-cran-magick r-cran-lintr r-cran-tidyverse r-cran-bit64 r-cran-debugme
#5 7.206   r-cran-diagrammer r-cran-formattable r-cran-lubridate r-cran-nanotime
#5 7.206   r-cran-nycflights13 r-cran-palmerpenguins r-cran-stringi r-cran-units
#5 7.206   r-cran-disposables r-cran-pryr r-cran-fs r-cran-usethis r-cran-dichromat
#5 7.206   r-cran-hms r-cran-bench r-cran-blob r-cran-brio r-cran-evaluate r-cran-mockr
#5 7.206   r-cran-pkgbuild r-cran-pkgload r-cran-purrr r-cran-tidyr r-cran-generics
#5 7.206   r-cran-pkgdown r-cran-zeallot
#5 7.588 The following NEW packages will be installed:
#5 7.588   r-cran-cli r-cran-colorspace r-cran-digest r-cran-fansi r-cran-farver
#5 7.589   r-cran-ggplot2 r-cran-glue r-cran-gtable r-cran-isoband r-cran-labeling
#5 7.589   r-cran-lifecycle r-cran-magrittr r-cran-munsell r-cran-pillar
#5 7.589   r-cran-pkgconfig r-cran-r6 r-cran-rcolorbrewer r-cran-rlang r-cran-scales
#5 7.590   r-cran-tibble r-cran-utf8 r-cran-vctrs r-cran-viridislite r-cran-withr
#5 7.971 0 upgraded, 24 newly installed, 0 to remove and 14 not upgraded.
#5 7.971 Need to get 18.5 MB of archives.
#5 7.971 After this operation, 29.1 MB of additional disk space will be used.
#5 7.971 Get:1 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-cli amd64 3.4.1-1.ca2204.1 [1,162 kB]
#5 8.249 Get:2 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-colorspace amd64 2.0-3-1.ca2204.1 [2,499 kB]
#5 8.757 Get:3 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-digest amd64 0.6.30-1.ca2204.1 [184 kB]
#5 8.789 Get:4 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-fansi amd64 1.0.3-1.ca2204.1 [295 kB]
#5 8.844 Get:5 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-farver amd64 2.1.1-1.ca2204.1 [1,420 kB]
#5 9.092 Get:6 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-glue amd64 1.6.2-1.ca2204.1 [143 kB]
#5 9.118 Get:7 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-gtable all 0.3.1-1.ca2204.1 [154 kB]
#5 9.145 Get:8 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-isoband amd64 0.2.6-1.ca2204.1 [1,821 kB]
#5 9.463 Get:9 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-rlang amd64 1.0.6-1.ca2204.1 [1,449 kB]
#5 9.715 Get:10 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-labeling all 0.4.2-1.ca2204.1 [61.0 kB]
#5 9.727 Get:11 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-lifecycle all 1.0.3-1.ca2204.1 [112 kB]
#5 9.750 Get:12 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-munsell all 0.5.0-1.ca2204.1 [231 kB]
#5 9.790 Get:13 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-r6 all 2.5.1-1.ca2204.1 [83.2 kB]
#5 9.809 Get:14 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-rcolorbrewer all 1.1-3-1.ca2204.1 [54.0 kB]
#5 9.820 Get:15 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-viridislite all 0.4.1-1.ca2204.1 [1,296 kB]
#5 10.04 Get:16 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-scales all 1.2.1-1.ca2204.1 [587 kB]
#5 10.15 Get:17 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-magrittr amd64 2.0.3-1.ca2204.1 [199 kB]
#5 10.18 Get:18 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-utf8 amd64 1.2.2-1.ca2204.1 [135 kB]
#5 10.21 Get:19 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-vctrs amd64 0.5.0-1.ca2204.1 [1,191 kB]
#5 10.41 Get:20 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-pillar all 1.8.1-1.ca2204.1 [619 kB]
#5 10.51 Get:21 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-pkgconfig all 2.0.3-1.ca2204.1 [18.9 kB]
#5 10.51 Get:22 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-tibble amd64 3.1.8-1.ca2204.1 [640 kB]
#5 10.61 Get:23 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-withr all 2.5.0-1.ca2204.1 [222 kB]
#5 10.65 Err:24 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-ggplot2 all 3.3.6-1.ca2204.1
#5 10.65   404  Not Found [IP: 192.17.190.167 443]
#5 10.67 Fetched 14.6 MB in 3s (4,796 kB/s)
#5 10.67 E: Failed to fetch https://r2u.stat.illinois.edu/ubuntu/pool/dists/jammy/main/r-cran-ggplot2_3.3.6-1.ca2204.1_all.deb  404  Not Found [IP: 192.17.190.167 443]
#5 10.67 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
------
executor failed running [/bin/sh -c sudo apt-get -y install r-cran-ggplot2]: exit code: 100

Incorrect comment referring to 4.2.0 in add_cranapt_jammy.sh

Consider this comment from add_cranapt_jammy.sh:

Third: ensure R 4.2.0 is used (could use Launchpad source or edd PPA too)

I don't think that the comment is correct. I think that the code merely ensures that the latest version of R will be used, not that it will be 4.2.0. For example, when I run the script now I see R 4.2.1.

Apologies if I am missing something! Thanks for a cool tool!

Instructions about installing bspm for r2u may be assuming a dependency that may be missing

The instructions are:

apt install --yes --no-install-recommends python3-{dbus,gi,apt}
## Then install bspm (as root) and enable it, and enable a speed optimization
Rscript -e 'install.packages("bspm")'
RHOME=$(R RHOME)
echo "suppressMessages(bspm::enable())" >> ${RHOME}/etc/Rprofile.site
echo "options(bspm.version.check=FALSE)" >> ${RHOME}/etc/Rprofile.site

Failed on newly installed Ubuntu. I think because installing bspm may require make to have been installed as well as the python requirements.

When that install failed, the addition of those lines to Rprofile.site of course still went ahead changing Rprofile.site. That then caused confusing error messages when you next run R as execution of those lines expects that bpsm has been installed when it failed to install.

As I say, I think the cause of the failed installation of bspm was another missing dependency and for me, installing make solved that and then I could remove those messages from Rprofile.site, launch R, install bspm, reinstate those lines in Rprofile.site and everything is fine now. Maybe my diagnosis is incorrect but the facts of the matter were as reported.

RQuantLib is uninstallable on r2u:jammy

Reported via toot by Dave Vanness a few hours ago.

Confirmed on my 23.04 laptop accessing r2u:22.04.

The culprit is the inclusion of my very own PPA which lets the most current QuantLib library seep in during build time but then during run-time we do not have the same library -- boom. Uninstallable. QuantLib being complicated adding the PPA to the run-time will likely not help as the underlying binary build is from the LTS release 22.04. So a better fix is likely to just turn off the PPA use which I shall try next.

Using within RStudio

While this works using R running in a terminal, I'm getting an error when installing from within RStudio:

> install.packages("hts")
Error in install.packages : cannot connect to the system package manager

On KDE Neon 5.25 (based on Ubuntu 20.04). Using R 4.2.1 and RStudio 2022.07.1 Build 554.

Remove.package is not automagically translated

I don't know if this is a breakage in the upstream bspm package, but I have a very simple example of something I ran into today:

r$> install.packages("rextendr")
...
# Everything works beautifully
r$> remove.packages("rextendr")
Removing package from ‘/home/aperson/R/x86_64-pc-linux-gnu-library/4.2’
(as ‘lib’ is unspecified)
Error in find.package(pkgs, lib) : there is no package called ‘rextendr’

I was using this in radian, but I also found that this occurs in the plain old R interactive shell as well.

For now, I can just remove the r-cran-FOO apt package, but I thought I'd report this.

Description: always starts with 'CRAN Package '${name}' (${title})

Which is of course not always correct but let us hope the BioConductor packages will forgive us:

edd@vijay:~$ apt-cache show r-bioc-rgraphviz | grep "^Package\|^Description:"
Package: r-bioc-rgraphviz
Description: CRAN Package 'Rgraphviz' (Provides plotting capabilities for R graph objects)
edd@vijay:~$ 

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.