bspm: Bridge to System Package Manager

Build Status CRAN_Status_Badge

Enables binary package installations on Linux distributions. Provides functions to manage packages via the distribution’s package manager. Also provides transparent integration with R’s install.packages() and a fallback mechanism. When installed as a system package, interacts with the system’s package manager without requiring administrative privileges via an integrated D-Bus service; otherwise, uses sudo. Currently, the following backends are supported: DNF, APT.

Installation

Installation from system repositories is preferred, mainly to avoid issues on SELinux-enabled systems (see #19).

Installation from source requires the following dependencies (apart from R):

If you plan to run it as a regular user (non-root), these are required too:

Then, you should install it as a system package to be able to use it as a regular user (note sudo):

sudo R CMD INSTALL bspm_[version].tar.gz

Further configuration options:

To enable it by default, put the following into the Rprofile.site:

suppressMessages(bspm::enable())

Then, run install.packages as usual, and available system packages will be automatically installed.

Developing new backends

New backends for other package managers can be added to inst/service/backend. Each backend must implement the following functions:

The last two functions receive a list of prefixes, a list of R package names and a list of exclusions, and must return a list with those package names that could not be processed (i.e., packages not found in the system repos). Any progress should be reported to stdout.