Rcpp Interface to the APT Package Manager
C++ R Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
R
inst
man
src
tests
.Rbuildignore
.codecov.yml
.gitignore
.travis.yml
ChangeLog
DESCRIPTION
NAMESPACE
README.md
cleanup
configure
rcppapt.Rproj

README.md

RcppAPT Build Status License CRAN Downloads Code Coverage

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)