[Rd] (PR#7163) Install packages does not work on Win2003 serv er

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Aug 13 09:02:07 CEST 2004

On Fri, 13 Aug 2004, Walke, Rainer wrote:

> 	Do you know which part of the R code creates this temporary file*
> directories in the library subdirectory?

Why don't *you* know?  It is install.packages, surprisingly enough, in its
internal function unpackPkg, and running that under debug would show you
what is going on.  Once again, remember only you can do this as we cannot 
reproduce your claims.

Do remember you have already been told that you are using an unsupported 
OS, and quite possible a file system that has never been tested and is not 
supported by the compilers we use to build R.

One possible issue is that code uses

                file.rename(file.path(tmpDir, curPkg), instPath)

Internally that boils down to

int Rwin_rename(char *from, char *to)
    int res = 0;
    OSVERSIONINFO verinfo;

    verinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    switch(verinfo.dwPlatformId) {
	res = (MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) == 0);
	if (!DeleteFile(to) && GetLastError() != ERROR_FILE_NOT_FOUND)
	    return 1;
	res = (MoveFile(from, to) == 0);
    return res;

Now, what your unsupported OS reports for dwPlatformId is undocumented in 
the MinGW header files (and in the VC6 docs), and your OS did not exist 
when that was written.  Given the choices

#define VER_PLATFORM_WIN32s 0

it is the third according the Microsoft's current Platform SDK, but is 
that correct (it seems to predate the release of your OS)?  Please check 
it for us.


Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list