Outdated dependencies and install.packages()
Prof Brian Ripley wrote:
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.
It isn't. Matrix 0.999375-11 was 'uninstalled'. The above could just mean that if you installed it, it wouldn't be installed again. Something like "Notice that version dependencies are not checked." would help. (Assuming that people read the help page.)
O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907