[Rd] update.packages fails with directory not found

Georgi Boshnakov georgi.boshnakov at manchester.ac.uk
Tue May 11 12:35:23 CEST 2010


I posted a similar problem to this list but had no response.
The full email is copied below.

In a nutshell, I traced the message to normalizePath,
which issues it. The directory does not exist because a "move/rename  
directory" command, issued at the end of the installation, failed. The  
directory you see would have been renamed to the eventual one otherwise.

Since it is the move/rename command which fails on otherwise  
(seemingly) successful installation, is it possible to try to copy the  
directory when renaming fails and, if successful, inform the user that  
a temporary directory has been left behind?


Georgi Boshnakov
Univeristy of Manchester


----------------------------------------------------------------------

Message: 1
Date: Mon, 10 May 2010 00:07:50 -0400
From: Mike Prager <mike.prager at mhprager.com>
To: r-devel at stat.math.ethz.ch
Subject: [Rd] update.packages fails with directory not found
Message-ID: <t81fu5t8gg8crt5nm3h3d3rg6bcg7lri7k at 4ax.com>
Content-Type: text/plain; charset=us-ascii

Windows XP.  I have just updated to R 2.11.0 and then run
update.packages. In the series of updates, a few will succeed, then I
get a failure like


package 'mvtnorm' successfully unpacked and MD5 sums checked
package 'party' successfully unpacked and MD5 sums checked
package 'PBSmodelling' successfully unpacked and MD5 sums checked
Error in normalizePath(path) :
   path[1]="c:\Program Files\R\Library/PBSmodelling": The system cannot
find the file specified


Indeed, the path is missing, though it was there when I issued the
update.packages command.

???

--
Mike Prager, NC, USA



------------------------------



----- Forwarded message from georgi.boshnakov at manchester.ac.uk -----
     Date: Thu, 18 Feb 2010 10:43:11 +0000
     From: Georgi Boshnakov <georgi.boshnakov at manchester.ac.uk>
  Subject: install.packages, normalizePath, file permissions
       To: r-devel at r-project.org

Dear developers,

I have a small but more or less well defined inquiry. Another, more  
general one for which I was not able to find information is towards  
the end of this messages. The question seems to be too technical for  
R-help, that is why I post it here.

When installing packages (Windows XP), occasionally the installation  
does not complete because, it seems, Windows locks some files. I  
normally ignore this as a minor annoyance but now I wish to ask  
students to install a number of often used packages by sourcing an R  
file and this becomes a problem.

Here is an example:

> install.packages( file.path(fp,"fgui_1.0-0.zip"     ), repos=NULL)
Warning in install.packages(file.path(fp, "fgui_1.0-0.zip"), repos = NULL) :
   argument 'lib' is missing: using 'p:/Rpack'
package 'fgui' successfully unpacked and MD5 sums checked
Error in normalizePath(path) :
   path[1]="p:\Rpack/fgui": The system cannot find the file specified


The circumstances are difficult to reproduce. For some reason, the  
system does not like "fgui" and maybe other packages. The p: drive  
above is network attached and and I have read/write access. Here is  
the result of traceback.

> traceback()
7: normalizePath(instPath)
6: sprintf(gettext(fmt, domain = domain), ...)
5: gettextf("unable to move temporary installation '%s' to '%s'",
        normalizePath(file.path(tmpDir, curPkg)), normalizePath(instPath))
4: warning(gettextf("unable to move temporary installation '%s' to '%s'",
        normalizePath(file.path(tmpDir, curPkg)), normalizePath(instPath)),
        domain = NA, call. = FALSE, immediate. = TRUE)
3: unpackPkg(pkgs[i], pkgnames[i], lib)
2: .install.winbinary(pkgs = pkgs, lib = lib, contriburl = contriburl,
        method = method, available = available, destdir = destdir,
        dependencies = dependencies, ...)
1: install.packages(file.path(fp, "fgui_1.0-0.zip"), repos = NULL)

The error seems to be thrown by the folloing chunk towards the end of  
.install.winbinary():

   ret <- file.rename(file.path(tmpDir, curPkg), instPath)
   if(!ret)
     warning(gettextf("unable to move temporary installation '%s' to '%s'",
                      normalizePath(file.path(tmpDir, curPkg)),
                      normalizePath(instPath)),
              domain = NA, call. = FALSE, immediate. = TRUE)
   ...

Apparently, renaming failed and a message is displayed.
The failure of rename.file may have left the directory specified by  
'instPath' non-existent which may cause normalizePath to fail. When  
this happens
the message printed is not that of warninig() but the one from  
normalizePath() which is uninformative for the user. Maybe an  
additional check here would be appropriate and, given that the  
installation has been basically successful at this point, even an  
attempt to copy the directory after the refusal by Windows to rename  
it? I understand of course that the developers have better things to  
do than to wrestle with the caprice of Windows.


====
Here is a more general enquiry.

I am using R in a statistics course (about 100) students in a computer  
cluster where R is installed on a server, students run WindowsXP and  
to my understanding the program is run by something called "Zen". It  
seems that if a number of students try loading packages, things become  
extremely slow and loading fails for some.

The IT services claim that R is the culprit, I am not sure and  
certainly part of the problem is related to the slow speed of the  
network, but a few problems seem to be related to permissions. I tried  
using options(timeout=N) even trying ridiculous values for N but this  
did not improve things.

I was not able to trace discussions of such issues and wonder if  
somebody has encountered similar problems.

I am about to try ask the students to install some packages in their  
area (called p: drive at this Uni) which prompted the first question  
above.

Thank you for any suggestions,
Georgi


-- 
Dr Georgi Boshnakov               tel: (+44) (0)161 306 3684
School of Mathematics             fax: (+44) (0)161 306 3669
Alan Turing Building 1.125
The University of Manchester      email: Georgi.Boshnakov at manchester.ac.uk
Oxford Road
Manchester M13 9PL
UK




----- End forwarded message -----


-- 
Dr Georgi Boshnakov               tel: (+44) (0)161 306 3684
School of Mathematics             fax: (+44) (0)161 306 3669
Alan Turing Building 1.125
The University of Manchester      email: Georgi.Boshnakov at manchester.ac.uk
Oxford Road
Manchester M13 9PL
UK



More information about the R-devel mailing list