Learn R Programming

RcppAPT: Rcpp Interface to APT Package Manager

Background

Debian and its derivatives like Ubuntu utilize a powerful package managing backend / frontend combination in APT (A Packaging Tool). Accessible at the command-line via front-ends apt, apt-get, apt-cache, ... as well as numerous GUI variants, it is implemented using a library libapt-pkg. This small package provides R with access to this library via Rcpp.

Examples

We can query packages by regular expression:

R> library(RcppAPT)
R> getPackages("^r-base-.")

which returns a data frame with name, version (if installed) and section.

We can also check for installability of a given package or set of packages:

R> hasPackages(c("r-cran-rcpp", "r-cran-rcppapt"))
   r-cran-rcpp r-cran-rcppapt
          TRUE          FALSE
R>

which shows that Rcpp is (of course) available, but this (very new) package is (unsurprisingly) not available pre-built.

Moreover, we can look at the package information of a given package. The buildDepends() function extracts just the build dependencies:

R> buildDepends("r-cran-rcppeigen")
[1] "debhelper"        "r-base-dev"       "cdbs"
[4] "r-cran-rcpp"      "r-cran-matrix"    "r-cran-pkgkitten"
R>

The showSrc() and dumpPackages() functions display even more information.

We can also look at reverse dependencies:

R> reverseDepends("r-cran-rcpp$")
               package  version
1  r-cran-surveillance
2     r-cran-rquantlib   0.11.0
3      r-cran-reshape2
4        r-cran-readxl
5     r-cran-rcppeigen 0.11.0-1
6 r-cran-rcpparmadillo   0.11.0
7          r-cran-plyr
8         r-cran-minqa   0.11.0
R>

Status

The package is still fairly small, and functionality is (currently) limited to the examples shown above. It builds reliably on the supported systems.

But libapt-pkg is pretty mature, and feature-rich, so this package acts mostly as a wrapper from R.

Installation

The package is on CRAN so a very standard

install.packages("RcppAPT")

will do. Make sure you install the libapt-pkg-dev package first as it is a build-dependency.

Versions of the package may also be available via drat via:

drat:::add("eddelbuettel")
install.packages("RcppAPT")

Author

Dirk Eddelbuettel

License

GPL (>= 2)

Copy Link

Version

Install

install.packages('RcppAPT')

Monthly Downloads

227

Version

0.0.9

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Last Published

May 25th, 2022

Functions in RcppAPT (0.0.9)

showSrc

Display information for given packages
dumpPackages

Display information for given packages
hasPackages

Test for Existence of Given Package
getDepends

Return Depends for given packages
buildDepends

Return Build-Depends for given packages
getPackages

Retrieve Names of All Installable Packages
reverseDepends

Return Reverse-Depends for given packages
RcppAPT-package

Rcpp Interface to the APT Package Manager
suitable

Test for Suitability of System