From ripley at stats.ox.ac.uk  Fri Nov 11 16:45:05 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Fri, 11 Nov 2005 15:45:05 +0000 (GMT)
Subject: [Rd] Recursive dependencies(Rcmdr)
In-Reply-To: <x264qzi5jk.fsf@viggo.kubism.ku.dk>
References: <x264qzi5jk.fsf@viggo.kubism.ku.dk>
Message-ID: <Pine.LNX.4.61.0511111529420.10550@gannet.stats>

On Fri, 11 Nov 2005, Peter Dalgaard wrote:

> Something might have slipped by me, but I got into the following situation
> installing Rcmdr:

install.packages() does indeed have code to check for dependencies of 
dependencies.  I got the message

also installing the dependencies 'acepack', 'scatterplot3d', 'quadprog', 
'fBasics', 'Hmisc', 'mlbench', 'randomForest', 'SparseM', 'xtable', 'oz', 
'leaps', 'dynlm', 'e1071', 'tseries', 'chron', 'fCalendar', 'its', 'DAAG', 
'abind', 'car', 'effects', 'lmtest', 'multcomp', 'mvtnorm', 'relimp', 
'sandwich', 'strucchange', 'zoo'

The problem is the ordering.  Rcmdr does have mvtnorm in the 'Suggests' 
list, and has it after 'multcomp', and install.packages does not check 
that the Suggests list does not have inter-dependencies.

So we do `do something smarter', but not smart enough.

>
> < install.packages("Rcmdr",depend=TRUE) >
>
> Oodles of Output, until:
>
> * Installing *source* package 'multcomp' ...
> ** R
> ** data
> ** inst
> ** preparing package for lazy loading
> Error in dyn.load(x, as.logical(local), as.logical(now)) :
>        unable to load shared library '/home/bs/pd/Rlibrary/mvtnorm/libs/mvtnorm.so':
>  /home/bs/pd/Rlibrary/mvtnorm/libs/mvtnorm.so: cannot open shared object file: No such file or directory
> Execution halted
>
> .... Several oodles more for remaining packages ....
>
> ** building package indices ...
> * DONE (strucchange)
>
> The downloaded packages are in
>        /tmp/RtmpF23254/downloaded_packages
> Warning messages:
> 1: installation of package 'multcomp' had non-zero exit status in: install.packages("Rcmdr", depend = TRUE)
> 2: cannot create HTML package index in: tools:::unix.packages.html(.Library)
>
>
> OK, so we start Rcmdr
>
>> library(Rcmdr)
> Loading required package: tcltk
> Loading required package: car
>
> it then detects that multcomp is missing and asks for permission to
> install it, giving the same result.
>
> The thing appears to be that multcomp depends on mvtnorm, but the
> extra dependency goes undetected. Manual installation of the two
> works.
>
> A workaround is that John adds mvtnorm to the Suggested list for
> Rcmdr, but I wonder if we couldn't do something smarter.
>
>> version
>         _
> platform x86_64-unknown-linux-gnu
> arch     x86_64
> os       linux-gnu
> system   x86_64, linux-gnu
> status
> major    2
> minor    2.0
> year     2005
> month    10
> day      06
> svn rev  35749
> language R
>> .libPaths()
> [1] "/home/bs/pd/Rlibrary" "/usr/lib64/R/library"
>
> -- 
>   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
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] Recursive dependencies(Rcmdr)
Prof Brian Ripley