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 should at least document the behaviour. -- 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
A small addendum is that if the outdated dependency is in the LinkingTo: field, the error can be more cryptic. Installation then fails with compilation errors rather than the hint that the dependency is out of date. Martin Morgan Peter Dalgaard <P.Dalgaard at biostat.ku.dk> writes:> 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 should at least document the behaviour. > > -- > 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 > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel-- Martin Morgan Computational Biology / Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109 Location: Arnold Building M2 B169 Phone: (206) 667-2793
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