Jon Olav Skoien
2010-Dec-17 16:13 UTC
[R] install.packages() - old version deleted, new version did not install
Dear list, (R 2.12.0, Windows 7, 64bit) I recently tried to install a new package ("spacetime"), that depends on "sp" among others. I already had the last one installed, but there was probably a newer version on CRAN, so the command > install.packages("spacetime") also gave me: also installing the dependencies ?sp?, ?zoo?, ?xts? sp was already loaded in this session, so installation failed: package 'sp' successfully unpacked and MD5 sums checked Warning: cannot remove prior installation of package 'sp' Unfortunately, the warning should rather say: "cannot completely remove prior installation of package 'sp'" R managed to remove most of the prior installation of sp, except for the .dll. I could go on using sp in the existing sessions, but not load the package in a new session or open the help pages. This has happened to me several times, and the only solution I have found to this is to close all R-sessions and install the package again. This is normally ok, but this time I had some long-time computations running in another R-session that I did not want to interrupt. For the next time, is there a way to reinstall a package without interrupting running R-sessions? For me it seems like the cause of the problem could have been solved by checking if the .dll can be removed before removing the rest of the package, by adding something like the following in utils:::unpackPkgZip? if (unlink(paste(instPath,"/libs/x64/sp.dll", sep = "")) != 0) warning("cannot remove...") before ret <- unlink(instPath, recursive = TRUE) (line 95) x64 in the path would have to be changed to something architecture dependent... Best wishes, Jon
Duncan Murdoch
2010-Dec-17 17:22 UTC
[R] install.packages() - old version deleted, new version did not install
On 17/12/2010 11:13 AM, Jon Olav Skoien wrote:> Dear list, > > (R 2.12.0, Windows 7, 64bit) > > I recently tried to install a new package ("spacetime"), that depends on > "sp" among others. I already had the last one installed, but there was > probably a newer version on CRAN, so the command > > install.packages("spacetime") > also gave me: > also installing the dependencies ?sp?, ?zoo?, ?xts? > > sp was already loaded in this session, so installation failed: > package 'sp' successfully unpacked and MD5 sums checked > Warning: cannot remove prior installation of package 'sp' > > Unfortunately, the warning should rather say: > "cannot completely remove prior installation of package 'sp'" > R managed to remove most of the prior installation of sp, except for the > .dll. I could go on using sp in the existing sessions, but not load the > package in a new session or open the help pages. This has happened to me > several times, and the only solution I have found to this is to close > all R-sessions and install the package again. This is normally ok, but > this time I had some long-time computations running in another R-session > that I did not want to interrupt. For the next time, is there a way to > reinstall a package without interrupting running R-sessions? > > For me it seems like the cause of the problem could have been solved by > checking if the .dll can be removed before removing the rest of the > package, by adding something like the following in utils:::unpackPkgZip? > if (unlink(paste(instPath,"/libs/x64/sp.dll", sep = "")) != 0) > warning("cannot remove...") > before > ret<- unlink(instPath, recursive = TRUE) (line 95) > x64 in the path would have to be changed to something architecture > dependent...Could you try out the new 2.12.1 release? I recall hearing that something like this had changed, but I can't spot the NEWS item right now. Duncan Murdoch
Duncan Murdoch
2010-Dec-21 01:22 UTC
[R] install.packages() - old version deleted, new version did not install
I've just tentatively put code to fix this in place in R-devel. By default it is not enabled, because if it goes wrong it could really mess things up. To enable it, set options(install.lock=TRUE) before installing or updating binary packages in Windows. It will slow down all installs, so it may be that the default should stay no-locking as it is now: only people running multiple instances of R really need this. Since it appealed to my sense of symmetry, you can also say options(install.lock=FALSE) which will mean that source installs done by install.packages() will default to act like R CMD INSTALL --unsafe, i.e. go ahead without locking. The latter change affects all platforms, not just Windows. You should be able to download R-devel builds containing this change by tomorrow; look for revision r53875 or newer. Duncan Murdoch On 17/12/2010 11:13 AM, Jon Olav Skoien wrote:> Dear list, > > (R 2.12.0, Windows 7, 64bit) > > I recently tried to install a new package ("spacetime"), that depends on > "sp" among others. I already had the last one installed, but there was > probably a newer version on CRAN, so the command > > install.packages("spacetime") > also gave me: > also installing the dependencies ?sp?, ?zoo?, ?xts? > > sp was already loaded in this session, so installation failed: > package 'sp' successfully unpacked and MD5 sums checked > Warning: cannot remove prior installation of package 'sp' > > Unfortunately, the warning should rather say: > "cannot completely remove prior installation of package 'sp'" > R managed to remove most of the prior installation of sp, except for the > .dll. I could go on using sp in the existing sessions, but not load the > package in a new session or open the help pages. This has happened to me > several times, and the only solution I have found to this is to close > all R-sessions and install the package again. This is normally ok, but > this time I had some long-time computations running in another R-session > that I did not want to interrupt. For the next time, is there a way to > reinstall a package without interrupting running R-sessions? > > For me it seems like the cause of the problem could have been solved by > checking if the .dll can be removed before removing the rest of the > package, by adding something like the following in utils:::unpackPkgZip? > if (unlink(paste(instPath,"/libs/x64/sp.dll", sep = "")) != 0) > warning("cannot remove...") > before > ret<- unlink(instPath, recursive = TRUE) (line 95) > x64 in the path would have to be changed to something architecture > dependent... > > Best wishes, > Jon > > ______________________________________________ > 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.
Maybe Matching Threads
- Strange behavior when using progress bar (Fwd: Re: [R] The code itself disappears after starting to execute the for loop)
- monthly median in a daily dataset
- Cannot change location of tempdir()
- Error in compactPDF/find_gs_cmd or documentation?
- Small modification of zip.file.extract in utils?