[R] install.packages() - old version deleted, new version did not install

Duncan Murdoch murdoch.duncan at gmail.com
Mon Dec 20 15:29:14 CET 2010


On 20/12/2010 9:26 AM, Uwe Ligges wrote:
>
> On 20.12.2010 15:19, Duncan Murdoch wrote:
> >  On 20/12/2010 9:03 AM, Jon Olav Skoien wrote:
> >>  On 12/20/2010 1:43 PM, Duncan Murdoch wrote:
> >>  >  Jon Olav Skoien wrote:
> >>  >>  On 12/17/2010 6:22 PM, Duncan Murdoch wrote:
> >>  >>>  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
> >>  >>
> >>  >>  It seems it didnt change yet...
> >>  >>  I installed 2.12.1 (on a different computer, still Windows, but Vista
> >>  >>  and 32 bit), and after installing and loading sp in one session, I
> >>  >>  opened a new session and got:
> >>  >>
> >>  >>  R version 2.12.1 (2010-12-16)
> >>  >>  Copyright (C) 2010 The R Foundation for Statistical Computing
> >>  >>  ISBN 3-900051-07-0
> >>  >>  Platform: i386-pc-mingw32/i386 (32-bit)
> >>  >>  ............................
> >>  >>
> >>  >>  >  install.packages("sp")
> >>  >>  Installing package(s) into ‘C:\Users\Jon\Documents/R/win-library/2.12’
> >>  >>  (as ‘lib’ is unspecified)
> >>  >>  --- Please select a CRAN mirror for use in this session ---
> >>  >>  provo con l'URL
> >>  >>  'http://cran.at.r-project.org/bin/windows/contrib/2.12/sp_0.9-76.zip'
> >>  >>  Content type 'application/zip' length 997444 bytes (974 Kb)
> >>  >>  URL aperto
> >>  >>  downloaded 974 Kb
> >>  >>
> >>  >>  package 'sp' successfully unpacked and MD5 sums checked
> >>  >>  Warning: cannot remove prior installation of package 'sp'
> >>  >>
> >>  >>  The downloaded packages are in
> >>  >>  C:\Users\Jon\AppData\Local\Temp\RtmpCTJeBk\downloaded_packages
> >>  >>  >  library(sp)
> >>  >>  Errore in library(sp) : non c'è alcun pacchetto chiamato 'sp'
> >>  >>  >
> >>  >>
> >>  >>  The error message is the same as earlier, there is no package called
> >>  >>  "sp", the attempt to install it again removed the old version except
> >>  >>  for the .dll.
> >>  >>
> >>  >>  Jon
> >>  >
> >>  >  Did you have it open at the time? Windows won't let open files be
> >>  >  removed, so that could have caused the problem. If it's not that, it
> >>  >  could be a permissions problem. Have you tried running R as
> >>  >  administrator for the install?
> >>  Yes, I had it open. In this case it was intentional to give a
> >>  reproducible example in case something had changed in the new version,
> >>  in other cases I have had to wait for 2 days before I could reinstall a
> >>  package. It seems the .dll is the one causing the problem, so wouldnt it
> >>  be possible to test if this file can be unlinked before trying to unlink
> >>  the complete directory in utils:::unpackPkgZip? Then the package should
> >>  be left untouched if it is in use, and not partly deleted as today.
> >
> >  I don't know. Perhaps we could try to rename the folder; if that fails,
> >  abort the whole thing. If that succeeds but something later fails, then
> >  remove all the new stuff and restore the old folder. Do you know of a
> >  better test?
>
> I think we had something like that in the past which did not work
> properly on network shares and we had to change the way it works for
> that reason.

I just took a look at the code, and I see that something like that is 
still there.  I haven't tried it yet, so I don't know if it is in use.

Duncan Murdoch

> Uwe
>
>
> >  Duncan Murdoch
> >
> >>  I know that it is possible to avoid this problem by not installing a
> >>  package in use, but
> >>  1) it seems only to affect packages with .dll's, so some packages can be
> >>  reinstalled while in use
> >>  2) you dont always know if a dependent package will download a new
> >>  version of an installed package
> >>
> >>  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.



More information about the R-help mailing list