[Rd] Rcmdr package dependencies

John Fox jfox at mcmaster.ca
Tue Sep 22 21:48:59 CEST 2009


Dear Gabor,

At present, the Rcmdr package checks whether its dependencies are present
and offers to install them if they are not. Also at present, it installs its
dependencies with dep=TRUE, but that could be changed. I suppose that I
could simply rely on this mechanism rather than have a separate RcmdrInstall
package or advise users to install the Rcmdr itself with dep=TRUE.

Best,
 John


> -----Original Message-----
> From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
> Sent: September-22-09 3:09 PM
> To: John Fox
> Cc: r-devel at r-project.org
> Subject: Re: [Rd] Rcmdr package dependencies
> 
> To make it foolproof at Rcmdr's load time (i.e. in the .onLoad
> function) you could check whether RcmdrInstall was available (not
> necessarily loaded, just available).  If not, then you could issue a
> message asking the user to install it.  This would help the user avoid
> the situation where they install Rcmdr without RcmdrInstall and
> thereby not have the other packages available.
> 
> On Tue, Sep 22, 2009 at 2:54 PM, John Fox <jfox at mcmaster.ca> wrote:
> > Dear Gabor,
> >
> > I thought of this solution but rejected it, perhaps too hastily, because
it
> > seemed awkward. I suppose, however, that since the Rcmdr package would
be
> > unchanged, a user could choose to install it as at present with
> > dependencies=TRUE, or alternatively install the RcmdrInstall package and
> > avoid the recursive installation of suggested packages. Maybe the idea
is a
> > good one after all.
> >
> > Thank you,
> >  John
> >
> >
> >> -----Original Message-----
> >> From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
> >> Sent: September-22-09 2:32 PM
> >> To: John Fox
> >> Cc: r-devel at r-project.org
> >> Subject: Re: [Rd] Rcmdr package dependencies
> >>
> >> Create a package called RcmdrInstall, say, with no content and have it
> >> depend on Rcmdr.  RcmdrInstall would have all packages as dependencies
> >> while Rcmdr would only have the essential packages as dependencies.
> >>
> >> Install RcmdrInstall.  That would also force Rcmdr to be installed.
> >>
> >> Now issue:
> >>
> >>    library(Rcmdr)
> >>
> >> as before and the non-essentials won't be loaded.
> >>
> >> Thus the only difference between the current procedure and the new
> >> procedure as far as the user is concerned is that they install
> >> RcmdrInstall rather than Rcmdr.  They load and run Rcmdr in the same
> >> way.
> >>
> >> On Tue, Sep 22, 2009 at 9:15 AM, John Fox <jfox at mcmaster.ca> wrote:
> >> > Dear r-devel members,
> >> >
> >> > My Rcmdr package "depends" on several other packages (tcltk,
grDevices,
> >> > utils, and car) and "suggests" a number of others (abind, aplpack,
> >> > colorspace, effects, foreign, grid, Hmisc, lattice, leaps, lmtest,
MASS,
> >> > mgcv, multcomp, nlme, nnet, relimp, rgl, and RODBC). The reason for
the
> >> > distinction is that I don't want all of these packages to load when
the
> >> > Rcmdr loads; rather, the "suggested" packages are loaded as they're
> > needed.
> >> > But all of the packages -- both those under "depends" and those under
> >> > "suggests" -- really are necessary for all of the features of the
Rcmdr
> > to
> >> > work. For example, if the "leaps" package is absent, then the "Subset
> > model
> >> > selection" item in the "Models" menu is suppressed.
> >> >
> >> > This arrangement works reasonably well, but it makes it awkward to
> > install
> >> > the Rcmdr. If the user issues the command install.packages("Rcmdr"),
> > then
> >> > the "suggested" packages aren't installed. On the other hand, if the
> > user
> >> > issues the command install.packages("Rcmdr", dependencies=TRUE),
which
> > is
> >> > what I currently recommend, then "suggested" packages are installed
> >> > recursively, causing dozens of packages, most of them actually
> > unnecessary,
> >> > to be installed. This issue has been growing more acute, and at this
> > point
> >> > even with a fast Internet connection it takes quite a while for all
of
> > the
> >> > dependencies to download and install.
> >> >
> >> > I wonder whether I've missed something. Is there a way for me to
arrange
> >> the
> >> > Rcmdr package dependencies so that only the necessary packages (those
> >> > currently listed under both "depends" and "suggests" and the packages
on
> >> > which they "depend") are installed along with the Rcmdr, but the
> > currently
> >> > "suggested" packages aren't loaded when the Rcmdr loads?
> >> >
> >> > Any help would be appreciated.
> >> >
> >> > John
> >> >
> >> > ------------------------------
> >> > John Fox, Professor
> >> > Department of Sociology
> >> > McMaster University
> >> > Hamilton, Ontario, Canada
> >> > web: socserv.mcmaster.ca/jfox
> >> >
> >> > ______________________________________________
> >> > R-devel at r-project.org mailing list
> >> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >> >
> >
> >
> >



More information about the R-devel mailing list