Search code examples
rdependenciespackage

How to install dependencies when using "R CMD INSTALL" to install R packages?


I'm developing my first R package (using R 2.13, Ubuntu 10.10). Let's call it foo and let's say that the code in the R/ directory begins with the line library(bar), where bar is an existing package in CRAN, on which foo depends. My DESCRIPTION file contains the line:

Depends: bar

When package foo is ready for testing, I install it locally using:

R CMD INSTALL foo_1.0.tar.gz

However, if bar is not installed, I see:

ERROR: dependency ‘bar’ is not available for package ‘foo’

Obviously, if my foo were installed from CRAN using install.packages(), bar would be installed at the same time. So my question is: how can I ensure that CRAN package bar is installed, if required, when I install my package foo using R CMD INSTALL? Is this a job for a configuration script?


Solution

  • Actually, re-reading the R extensions guide, it doesn't say that R CMD INSTALL will get dependencies from CRAN. The install.packages() method from within R will do that, but at first glance I don't think R CMD INSTALL does.

    You can use install.packages to install from a .tar.gz, but you have to set repos=NULL, and then this applies:

     dependencies: logical indicating to also install uninstalled packages
              on which these packages depend/suggest/import (and so on
              recursively).  Not used if repos = NULL.
    

    I suspect the thing to do is to get the dependencies out of the DESCRIPTION file and then run R and do an install.packages() on those when you are testing your build in a clean environment.