[Rd] install.packages("C", dep=TRUE) does not always install indirect dependencies

Seth Falcon sfalcon at fhcrc.org
Fri Jun 9 06:38:51 CEST 2006


Duncan Murdoch <murdoch at stats.uwo.ca> writes:
>> conditions are satisfied:
>>   - Package C depends on B which in turns depends on A but
>>     the Depends field in C doesn't list A.
>>   - Package B is already installed but not package A (e.g.
>>     the user did 'install.packages("B", dep=FALSE)').
>> Then 'install.packages("C", dep=TRUE)' will not install A.
>> May be this is the desired behavior, I don't know. Personally, I would
>> think of 'install.packages("C", dep=TRUE)' as a reliable way to get every
>> packages that C directly or indirectly relies on installed.
>
> This seems rather unreasonable.  If a user asked not to install B's 
> dependencies, and A is not listed as a dependency of C, then I don't 
> think a request to install C and its dependencies should install A.

I see your point, but the unreasonable-ness kinda works both ways: If
a user asked to install C and _all_ its dependencies, then I think
that request should do that :-)

> Perhaps the installation of B without dependencies was a mistake?  I 
> think an argument could be made that dependencies=TRUE should be the 
> default (as it is when using the corresponding menu item in the Windows 
> GUI).

Installing dependencies seems like a reasonable default to me.  Having
the flexibility to not install dependencies is nice, but I imagine for
a majority of users they install a package in order to use it, and
mostly you can't use a package unless you have its dependencies
installed.

+ seth



More information about the R-devel mailing list