[Rd] Outdated dependencies and install.packages()

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Aug 20 16:46:08 CEST 2008


On Wed, 20 Aug 2008, Peter Dalgaard wrote:

> This looks like a buglet:
>
>> install.packages("lme4", depend=TRUE, lib="~/Rlibrary/")
> --- Please select a CRAN mirror for use in this session ---
> [...snip...]
> ** preparing package for lazy loading
> Error: package 'Matrix' 0.999375-4 was found, but >= 0.999375.11 is
> required by 'lme4'
> Execution halted
> ERROR: lazy loading failed for package 'lme4'
> ** Removing '/home/bs/pd/Rlibrary/lme4'
> ** Restoring previous '/home/bs/pd/Rlibrary/lme4'
>
> and the DESCRIPTION file for lme 4 does have
>
> Depends: methods, R(≥ 2.7.0), Matrix(≥ 0.999375-11), lattice
> <http://cran.r-project.org/web/packages/lattice/index.html>
>
>
> Looks like we're either not checking the version requirement of
> dependencies, or something is making 4 > 11... (from my reading of the
> code, it is the former, but I could have missed something).

We don't check version requirements of dependencies in install.packages(). 
That's a minefield related to having multiple versions of a package on a 
system and which gets loaded/namespace loaded, so you can easily have the 
needed version but pick up a different one.

Depending on whether lazy-loading is in place (and various other issues) 
you may or may not need the dependencies to install the package.  It's 
also a problem that you can update dependencies to incompatible ones, so 
the versions available at installation are only part of the story.

I don't see why the message reports .11 not -11, but that may be 
related to "package_version" classes.

> We should at least document the behaviour.

I am not sure where you think it should be documented and is not.
But for install.packages():

dependencies: logical indicating to also install uninstalled packages
           on which these packages depend/suggest/import (and so on
           recursively).  Not used if 'repos = NULL'. Can also be a
           character vector, a subset of 'c("Depends", "Imports",
           "Suggests")'.

'uninstalled' seems pretty clear to me.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-devel mailing list