>>>>> "PD" == Peter Dalgaard <[EMAIL PROTECTED]> >>>>> on Wed, 20 Aug 2008 17:06:36 +0200 writes:
PD> 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. >> PD> It isn't. Matrix 0.999375-11 was 'uninstalled'. The above could just PD> mean that if you installed it, it wouldn't be installed again. PD> Something like "Notice that version dependencies are not checked." would PD> help. (Assuming that people read the help page.) Or even more: " Notice that version dependencies are not checked such that outdated versions of installed packages are \emph{not} updated. Consider using \code{\link{update.packages}()} before \code{install.packages()}. " Note that --- thanks to Kate Mullen's nice help.request() proposal --- one of my top "TODOs" for R-devel is to finish a generalization of the current update.packages() function (that I have not quite finished) which will allow to only look for updates of specified set of packages rather than all packages in a given lib.loc {something that should *not* be triggered by a help.request() for a user (as ours) who has ~ 2000 R packages installed}. Martin ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel