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:
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>
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.
Development versions of the package may also be available via by r-universe which can accessed via
install.packages('RcppAPT',
repos = c('https://eddelbuettel.r-universe.dev',
'https://cloud.r-project.org'))
which offers source and binaries releases based on the main git branch for the common operating
systems. Linux binaries are also available, see the corresponding
documentation.
Note that you do need package libapt-pkg-dev installed to make a source
installation take full advantage of the apt API.
Dirk Eddelbuettel
GPL (>= 2)