[Rd] Outdated dependencies and install.packages()

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Thu Aug 21 10:53:58 CEST 2008


Martin Maechler wrote:
>>>>>> "PD" == Peter Dalgaard <P.Dalgaard at biostat.ku.dk>
>>>>>>     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
>   
That's essentially what happened to me (not with 2000 packages, though).
I was looking into the lme4/aod issue - reinstall lme4 - Matrix out of
date - update.packages() - wait for an hour or so for gtk2 and friends
to be updated on my laptop...

-- 
   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



More information about the R-devel mailing list