Re: [Rd] Outdated dependencies and install.packages()

From: Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>
Date: Wed, 20 Aug 2008 17:06:36 +0200

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

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 20 Aug 2008 - 15:18:11 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 21 Aug 2008 - 08:37:17 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive