[Rd] install.packages("C", dep=TRUE) does not always install indirect dependencies
Herve Pages
hpages at fhcrc.org
Fri Jun 9 19:47:25 CEST 2006
Duncan Murdoch wrote:
> On 6/8/2006 3:31 PM, Herve Pages wrote:
>> 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.
Hi Duncan,
Maybe the user didn't _ask_ not to install B's deps. Maybe he simply
made a mistake
(which is easy with 'dep=FALSE' being the default), or maybe this is a
shared system and
someone else installed B without 'dep=TRUE' or removed A or...
But I realize that there would be a significant extra cost if
'install.packages("C", dep=TRUE)'
had to check the whole deps tree instead of just checking whether only
the packages listed
in C's Depends field are already installed (especially when those
packages _are_ already
installed).
So if checking the whole deps tree can't be done everytime
'install.packages(..., dep=TRUE)'
is used then may be it could be done on demand e.g. with something
similar to what
"rpm -Va --nofiles" does on a Linux system (this checks the entire
system for missing deps).
> 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).
Yes having 'dependencies=TRUE' as the default would definetly help the
user to keep a system where all deps are satisfied.
Best,
H.
--
------------------------
Hervé Pagès
E-mail: hpages at fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the R-devel
mailing list