Re: [R] unload & reload a (new version of a) package

From: Harte, Thomas P <THarte_at_tiaa-cref.org>
Date: Tue, 15 Jan 2008 10:47:16 -0500


update: this phenomenon disappears if i do a straight install *without* package versioning, i.e.

C:\packages>c:\R\R-2.6.1\bin\R CMD BUILD foo_1.0

[creates foo_1.0.tar.gz]

C:\packages>c:\R\R-2.6.1\bin\R CMD INSTALL -l c:/library foo_1.0.tar.gz

i can update the package, re-build and re-install and load it into the existing
R session with a call to 'library(foo, lib.loc="c:/library")'

when i posted, i had been doing things *with versioning* switched on:

C:\packages>c:\R\R-2.6.1\bin\R CMD BUILD foo_1.0

[creates foo_1.0.tar.gz]

C:\packages>c:\R\R-2.6.1\bin\R CMD INSTALL --with-package-versions -l c:/library foo_1.0.tar.gz

and loading it into the existing R session with 'library(foo, lib.loc="c:/library", version="1.0")'.

so the problem seemes to exist if i install a newer version of the package this way, thereby clobbering the old version foo_1.0 in the process. however, if I copy the source tree for foo_1.0 and make a *completely new version*
foo_1.1, say, and install --with-package-versions:

C:\packages>c:\R\R-2.6.1\bin\R CMD BUILD foo_1.1 
C:\packages>c:\R\R-2.6.1\bin\R CMD INSTALL --with-package-versions -l
c:/library foo_1.1.zip 

library(foo, lib.loc="c:/library", version="1.1")

then i can successfully load version 1.1

something is possibly wrong somewhere with versioning, or with my package.
either way, i can live without versioning switched on and just clobber versions of the
library foo with the updated package foo.

-----Original Message-----
From: r-help-bounces_at_r-project.org [mailto:r-help-bounces_at_r-project.org] On Behalf Of Harte, Thomas P
Sent: Monday, January 14, 2008 6:49 PM
To: r-help_at_r-project.org
Subject: [R] unload & reload a (new version of a) package

i'm putting the final touches on a package that i'm developing and i noticed that if i detach the package, and then re-build & re-install it (using R
CMD)
then I can't get the newer version of the package to load in the existing R session (i have to close it out and start a new session, then the newer
version of the package is loaded).

looking through the source of 'detach' i see :

      .Call("R_lazyLoadDBflush", paste(libpath, "/R/", pkgname, 
            ".rdb", sep = ""), PACKAGE = "base")

is there some absolute way similar to the above to flush the package db and ensure that a newer version of the package can be loaded into the existing R session? detach calls .Last.lib and seems to go through the motions of purging the loaded package; why, then, is the package still lurking around in the existing R session?

it's not a big deal; it's only a minor pain having to re-start an R session. i'm more interesting in why this is happening.

cheers,

thomas.





This message, including any attachments, contains\ confi...{{dropped:26}}

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Tue 15 Jan 2008 - 15:56:42 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 06 Feb 2008 - 17:30:12 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive