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

From: Prof Brian Ripley <>
Date: Fri 13 Aug 2004 - 17:02:07 EST

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);     GetVersionEx(&verinfo);
    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,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list
Received on Fri Aug 13 17:04:34 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:45:06 EST