Hi, All:
Is there a way to identify whether any users are using a
particular package in a shared network R installation?
I ask, because we have such a multiple-user installation and when
I tried to install a package using Rgui that was in use by Rterm on a
single-user installation, 'install.packages' deleted the existing
package but failed to install the new version; see below.
I'm concerned especially about the following multiple user
scenario: User A on terminalServer1 tries "install.packages('mvtnorm')"
when user B on terminalServer2 was using 'mvtnorm'; both are using the
same network installation. If the results match my experience on a
single-user installation, the existing version will be deleted but the
new version will NOT be installed. Any subsequent new attempt to access
'mvtnorm' will fail until all current users of 'mvtnorm' quit those
sessions and someone subsequently invokes
"install.packages('mvtnorm')". In fact, user B could have disconnected
from that session a month ago, and may have long forgotten the R session
that is still officially active, though perhaps consuming 0 CPU seconds
in the past month!
Thanks,
Spencer
#######################################
##
## Rgui
##
#######################################
R version 2.6.2 (2008-02-08)
<snip>
> utils:::menuInstallPkgs()
trying URL
'http://cran.cnr.berkeley.edu/bin/windows/contrib/2.6/mvtnorm_0.8-3.zip'
Content type 'application/zip' length 214769 bytes (209 Kb)
opened URL
downloaded 209 Kb
package 'mvtnorm' successfully unpacked and MD5 sums checked
Warning: cannot remove prior installation of package 'mvtnorm'
The downloaded packages are in
C:\Documents and Settings\spencerg\Local
Settings\Temp\RtmpghgskA\downloaded_packages
updating HTML package descriptions
> library(mvtnorm)
Error in library(mvtnorm) : there is no package called 'mvtnorm'
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
Error in x[["Version"]] : subscript out of bounds
In addition: Warning message:
In FUN(c("mvtnorm", "tools")[[2L]], ...) :
DESCRIPTION file of package 'mvtnorm' is missing or broken
>
#######################################
##
## Concurrent Rterm session
##
#######################################
R version 2.6.2 (2008-02-08)
<snip>
> dmvnorm(1:2)
[1] 0.01306423
[1] ".GlobalEnv" "package:mvtnorm" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
> detach()
> dmvnorm(1:2)
Error: could not find function "dmvnorm"
> library(mvtnorm)
Error in library(mvtnorm) : there is no package called 'mvtnorm'
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
Error in x[["Version"]] : subscript out of bounds
In addition: Warning message:
In FUN(c("mvtnorm", "stepAICc")[[2L]], ...) :
DESCRIPTION file of package 'mvtnorm' is missing or broken
>
problem with 'install.packages'
3 messages · Spencer Graves, Uwe Ligges, Tony Plate
Spencer Graves wrote:
Hi, All:
Is there a way to identify whether any users are using a
particular package in a shared network R installation?
I ask, because we have such a multiple-user installation and when
I tried to install a package using Rgui that was in use by Rterm on a
single-user installation, 'install.packages' deleted the existing
package but failed to install the new version; see below.
I'm concerned especially about the following multiple user
scenario: User A on terminalServer1 tries "install.packages('mvtnorm')"
when user B on terminalServer2 was using 'mvtnorm'; both are using the
same network installation. If the results match my experience on a
single-user installation, the existing version will be deleted but the
new version will NOT be installed. Any subsequent new attempt to access
'mvtnorm' will fail until all current users of 'mvtnorm' quit those
sessions and someone subsequently invokes
Spencer, I am using a script that asks Windows if a file is opened in a subdirectory of the R library I am going to install or update packages in, which basically uses the Windows shell command net file Then simply grep for the package name you want to install...
"install.packages('mvtnorm')". In fact, user B could have disconnected
from that session a month ago, and may have long forgotten the R session
that is still officially active, though perhaps consuming 0 CPU seconds
in the past month!
That's worse and really hard to deal with, I fear. Best wishes, Uwe
Thanks,
Spencer
#######################################
##
## Rgui
##
#######################################
R version 2.6.2 (2008-02-08)
<snip>
> utils:::menuInstallPkgs()
trying URL 'http://cran.cnr.berkeley.edu/bin/windows/contrib/2.6/mvtnorm_0.8-3.zip' Content type 'application/zip' length 214769 bytes (209 Kb) opened URL downloaded 209 Kb package 'mvtnorm' successfully unpacked and MD5 sums checked Warning: cannot remove prior installation of package 'mvtnorm' The downloaded packages are in C:\Documents and Settings\spencerg\Local Settings\Temp\RtmpghgskA\downloaded_packages updating HTML package descriptions
> library(mvtnorm)
Error in library(mvtnorm) : there is no package called 'mvtnorm'
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
Error in x[["Version"]] : subscript out of bounds
In addition: Warning message:
In FUN(c("mvtnorm", "tools")[[2L]], ...) :
DESCRIPTION file of package 'mvtnorm' is missing or broken
>
####################################### ## ## Concurrent Rterm session ## ####################################### R version 2.6.2 (2008-02-08) <snip>
> dmvnorm(1:2)
[1] 0.01306423 [1] ".GlobalEnv" "package:mvtnorm" "package:stats" [4] "package:graphics" "package:grDevices" "package:utils" [7] "package:datasets" "package:methods" "Autoloads" [10] "package:base"
> detach() > dmvnorm(1:2)
Error: could not find function "dmvnorm"
> library(mvtnorm)
Error in library(mvtnorm) : there is no package called 'mvtnorm'
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
Error in x[["Version"]] : subscript out of bounds
In addition: Warning message:
In FUN(c("mvtnorm", "stepAICc")[[2L]], ...) :
DESCRIPTION file of package 'mvtnorm' is missing or broken
>
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
2 days later
I'm also interested in a solution to this problem of how to update R packages without disturbing sessions that may be using them. For S-PLUS I've been successfully using a system that always creates a new directory for an update of a library, eg., there could be multiple directories mylib.c0, mylib.c1, mylib.c2, etc. A single file contains the current mapping with lines like "mylib: mylib.c2". When a new library is published, the mapping file is updated. When a library is attached, the custom "attach" function consults the mapping file to find the latest version. This means that different sessions could have different versions of the library attached depending on when they attached it, and no in-use library will be overwritten. Obsolete unused version of libraries can be cleaned out periodically. I've been wondering whether "versioned installs" of packages could be used to achieve the same goals in R, e.g., with a system to automatically bump the third number in the version on each re-install. Could this work? I read that "versioned installs" are not widely used and should be used with caution, and notes like "NB: versioned installs are not installs of a named package." in ?install.packages make me wary. -- Tony Plate
Spencer Graves wrote:
Hi, All:
Is there a way to identify whether any users are using a
particular package in a shared network R installation?
I ask, because we have such a multiple-user installation and when
I tried to install a package using Rgui that was in use by Rterm on a
single-user installation, 'install.packages' deleted the existing
package but failed to install the new version; see below.
I'm concerned especially about the following multiple user
scenario: User A on terminalServer1 tries "install.packages('mvtnorm')"
when user B on terminalServer2 was using 'mvtnorm'; both are using the
same network installation. If the results match my experience on a
single-user installation, the existing version will be deleted but the
new version will NOT be installed. Any subsequent new attempt to access
'mvtnorm' will fail until all current users of 'mvtnorm' quit those
sessions and someone subsequently invokes
"install.packages('mvtnorm')". In fact, user B could have disconnected
from that session a month ago, and may have long forgotten the R session
that is still officially active, though perhaps consuming 0 CPU seconds
in the past month!
Thanks,
Spencer
#######################################
##
## Rgui
##
#######################################
R version 2.6.2 (2008-02-08)
<snip>
> utils:::menuInstallPkgs()
trying URL 'http://cran.cnr.berkeley.edu/bin/windows/contrib/2.6/mvtnorm_0.8-3.zip' Content type 'application/zip' length 214769 bytes (209 Kb) opened URL downloaded 209 Kb package 'mvtnorm' successfully unpacked and MD5 sums checked Warning: cannot remove prior installation of package 'mvtnorm' The downloaded packages are in C:\Documents and Settings\spencerg\Local Settings\Temp\RtmpghgskA\downloaded_packages updating HTML package descriptions
> library(mvtnorm)
Error in library(mvtnorm) : there is no package called 'mvtnorm'
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
Error in x[["Version"]] : subscript out of bounds
In addition: Warning message:
In FUN(c("mvtnorm", "tools")[[2L]], ...) :
DESCRIPTION file of package 'mvtnorm' is missing or broken
>
####################################### ## ## Concurrent Rterm session ## ####################################### R version 2.6.2 (2008-02-08) <snip>
> dmvnorm(1:2)
[1] 0.01306423 [1] ".GlobalEnv" "package:mvtnorm" "package:stats" [4] "package:graphics" "package:grDevices" "package:utils" [7] "package:datasets" "package:methods" "Autoloads" [10] "package:base"
> detach() > dmvnorm(1:2)
Error: could not find function "dmvnorm"
> library(mvtnorm)
Error in library(mvtnorm) : there is no package called 'mvtnorm'
> sessionInfo()
R version 2.6.2 (2008-02-08)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
Error in x[["Version"]] : subscript out of bounds
In addition: Warning message:
In FUN(c("mvtnorm", "stepAICc")[[2L]], ...) :
DESCRIPTION file of package 'mvtnorm' is missing or broken
>
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel