[Rd] Outdated dependencies and install.packages()
Martin Maechler
maechler at stat.math.ethz.ch
Sun Sep 28 00:19:34 CEST 2008
>>>>> "PD" == Peter Dalgaard <P.Dalgaard at biostat.ku.dk>
>>>>> on Thu, 21 Aug 2008 10:53:58 +0200 writes:
PD> 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 Heather Turner 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}.
I have now finally committed this code to R-devel (rev 46576)
and plan to port it to R-2.8.0 alpha before feature freeze.
It may well be worth if a few people have a look, and maybe even
try to send their next R-help e-mail with the new
help.request() function ..
Martin
PD> That's essentially what happened to me (not with 2000 packages, though).
PD> I was looking into the lme4/aod issue - reinstall lme4 - Matrix out of
PD> date - update.packages() - wait for an hour or so for gtk2 and friends
PD> to be updated on my laptop...
PD> --
PD> O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
PD> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
PD> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
PD> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-devel
mailing list