[R] Automatic detachment of dependent packages
Paul Smith
phhs80 at gmail.com
Fri Sep 7 20:05:50 CEST 2007
On 9/7/07, Barry Rowlingson <b.rowlingson at lancaster.ac.uk> wrote:
> > When one loads certain packages, some other dependent packages are
> > loaded as well. Is there some way of detaching them automatically when
> > one detaches the first package loaded? For instance,
> >
> >> library(sqldf)
> > Loading required package: RSQLite
> > Loading required package: DBI
> > Loading required package: gsubfn
> > Loading required package: proto
> >
> > but
> >
> >> detach(package:sqldf)
> >>
> >> search()
> > [1] ".GlobalEnv" "package:gsubfn" "package:proto"
> > [4] "package:RSQLite" "package:DBI" "package:stats"
> > [7] "package:graphics" "package:grDevices" "package:utils"
> > [10] "package:datasets" "package:methods" "Autoloads"
> > [13] "package:base"
> >
> > The packages
> >
> > RSQLite
> > DBI
> > gsubfn
> > proto
> >
> > were not detached.
>
> The danger here is that after attaching sqldf you might attach some
> other package that needs, say, DBI, then when your cleanup routine
> detaches DBI that other package dies because DBI isn't there.
>
> The way to do it would be to detach any packages that are only
> depended on by the package you are detaching. You'd have to call
> packageDescription("foo", fields="Depends") for currently attached
> packages to build the dependency tree and then work out which ones you
> can remove... There's a bit of recursive tree-walking in there, but it
> should be simple... Ummm...
Thanks, Barry and Gabor. Please, look at the following:
> library(sqldf)
Loading required package: RSQLite
Loading required package: DBI
Loading required package: gsubfn
Loading required package: proto
> packageDescription("sqldf", fields="Depends")
[1] "R (>= 2.5.1), RSQLite (>= 0.5-5), gsubfn"
>
packageDescription does not mention the packages DBI and proto.
Paul
More information about the R-help
mailing list