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.
We can query packages by regular expression:
> library(RcppAPT)
R> getPackages("^r-base-.") R
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:
> hasPackages(c("r-cran-rcpp", "r-cran-rcppapt"))
R-cran-rcpp r-cran-rcppapt
rTRUE 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:
> buildDepends("r-cran-rcppeigen")
R1] "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:
> reverseDepends("r-cran-rcpp$")
R
package version1 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
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.
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:
:::add("eddelbuettel")
dratinstall.packages("RcppAPT")
Dirk Eddelbuettel
GPL (>= 2)