Skip to content

Error in R CMD INSTALL on Windows XP using Rtools28

19 messages · Brian Ripley, Duncan Murdoch, Gabor Grothendieck +1 more

#
Dear all

When trying to install my package on Windows XP on my Mac, I get the 
following error:

---------- Making package xps ------------
...
...
xpsDict.cxx
"C:\Programme\Microsoft Visual Studio 9.0\VC\bin/link" /dll /def:xps.def 
/out:xps.dll fp10.obj  -opt:noref  -nologo -include:_G__cpp_setupG__Hist 
-include:_G__cpp_setupG__Graf1 -include:_G__cpp_setupG__G3D 
-include:_G__cpp_setupG__GPad -include:_G__cpp_setupG__Tree 
-include:_G__cpp_setupG__Rint -include:_G__cpp_setupG__PostScript 
-include:_G__cpp_setupG__Matrix -include:_G__cpp_setupG__Physics 
-include:_G__cpp_setupG__Ged  "C:\root/lib/libCore.lib" 
"C:\root/lib/libCint.lib" "C:\root/lib/libHist.lib" 
"C:\root/lib/libGraf.lib" "C:\root/lib/libGraf3d.lib" 
"C:\root/lib/libGpad.lib" "C:\root/lib/libTree.lib" 
"C:\root/lib/libRint.lib" "C:\root/lib/libPostscript.lib" 
"C:\root/lib/libMatrix.lib" "C:\root/lib/libPhysics.lib" 
"C:\root/lib/libNet.lib" "C:\root/lib/libRIO.lib" 
"C:\root/lib/libMathCore.lib" "C:\root/lib/libGui.lib" 
"C:\root/lib/libGraf.lib" "C:\root/lib/libGpad.lib" 
"C:\root/lib/libGed.lib" "C:\root/lib/libTreePlayer.lib" 
"C:\root/lib/libTreeViewer.lib" *.obj
   Creating library xps.lib and object xps.exp
  ... done
  installing DLL
  installing R files
  installing inst files
FIND: Parameterformat falsch
make[2]: *** [C:/home/Rabbitus/CRAN/xps.Rcheck/xps/inst] Error 2
make[1]: *** [all] Error 2
make: *** [pkg-xps] Error 2
*** Installation of xps failed ***


However, when I install my package on my Windows XP laptop, everything 
is ok:

---------- Making package xps ------------
...
...
xpsDict.cxx
"C:\Programme\Microsoft Visual Studio 9.0\VC\bin/link" /dll /def:xps.def 
/out:xps.dll fp10.obj  -opt:noref  -nologo -include:_G__cpp_setupG__Hist 
-include:_G__cpp_setupG__Graf1 -include:_G__cpp_setupG__G3D 
-include:_G__cpp_setupG__GPad -include:_G__cpp_setupG__Tree 
-include:_G__cpp_setupG__Rint -include:_G__cpp_setupG__PostScript 
-include:_G__cpp_setupG__Matrix -include:_G__cpp_setupG__Physics 
-include:_G__cpp_setupG__Ged  "C:\root/lib/libCore.lib" 
"C:\root/lib/libCint.lib" "C:\root/lib/libHist.lib" 
"C:\root/lib/libGraf.lib" "C:\root/lib/libGraf3d.lib" 
"C:\root/lib/libGpad.lib" "C:\root/lib/libTree.lib" 
"C:\root/lib/libRint.lib" "C:\root/lib/libPostscript.lib" 
"C:\root/lib/libMatrix.lib" "C:\root/lib/libPhysics.lib" 
"C:\root/lib/libNet.lib" "C:\root/lib/libRIO.lib" 
"C:\root/lib/libMathCore.lib" "C:\root/lib/libGui.lib" 
"C:\root/lib/libGraf.lib" "C:\root/lib/libGpad.lib" 
"C:\root/lib/libGed.lib" "C:\root/lib/libTreePlayer.lib" 
"C:\root/lib/libTreeViewer.lib" *.obj
   Creating library xps.lib and object xps.exp
  ... done
  installing DLL
  installing R files
  installing inst files
  preparing package xps for lazy loading
  installing man source files
  installing indices
Warning messages:
1: In file.create(f.tg) :
  kann Datei 'c:/Programme/R/R-2.8.0/doc/html/packages.html' nicht 
erzeugen. Grund 'Permission denied'
2: In tools:::win.packages.html(.Library) :
  kann HTML Paketindex nicht aktualisieren
  installing help
 >>> Building/Updating help pages for package 'xps'
...

To my knowledge I have only made one difference when installing 
everything necessary to build my package:
On my laptop I have installed Rtools27.exe, while on WinXP on my Mac I 
have installed Rtools28.exe.

Do you know what the reason for the error might be?

Thank you in advance.
Best regards
Christian
_._._._._._._._._._._._._._._._._._
C.h.r.i.s.t.i.a.n   S.t.r.a.t.o.w.a
V.i.e.n.n.a           A.u.s.t.r.i.a
e.m.a.i.l:        cstrato at aon.at
_._._._._._._._._._._._._._._._._._
#
This is a PATH error: you must have Rtools/bin before Windows system 
directories in your path.  As the R-admin manual tells you explicitly ....

fortune("WTFM") applies.
On Fri, 5 Dec 2008, cstrato wrote:

            

  
    
#
One difference between rtools27.exe and rtools28.exe is that the latter
sets a value in the registry to where rtools is located whereas the former
does not.
On Fri, Dec 5, 2008 at 2:49 PM, cstrato <cstrato at aon.at> wrote:
#
Dear all

Thank you all for you fast reply.

As I said, everything on my laptop and Mac is identical, here are my 
user defined environment variables:

HOME: c:\home\Rabbitus
INCLUDE: C:\Programme\Microsoft Visual Studio 
9.0\VC\include;C:\Programme\Microsoft SDKs\Windows\v6.0A\Include
LIB: C:\Programme\Microsoft Visual Studio 
9.0\VC\lib;C:\Programme\Microsoft SDKs\Windows\v6.0A\Lib;C:\root\lib
PATH: 
C:\Rtools\bin;C:\Rtools\perl\bin;C:\Rtools\MinGW\bin;C:\Programme\HTML 
Help Workshop;C:\Programme\R\R-2.8.0\bin;C:\root\bin;
MSVSPATH: C:\Programme\Microsoft Visual Studio 9.0\VC\bin
ROOTSYS: c:\root
R_LIBS: cd "C:\home\Rabbitus\CRAN"
TMPDIR: c:\home\Rabbitus\temp

I have just checked again, all variables are identical on both systems.

Could there be another reason?
What about the registry setting mentioned by Gabor Grothendieck?

Best regaards
Christian
Prof Brian Ripley wrote:
#
cstrato wrote:
I think Brian was right, your PATH is not what is shown above.  (That 
doesn't include the Windows directories, for instance.)

Were you running Rcmd INSTALL from a shell?  Which shell?  What does the 
shell report as your PATH just before running it? 

On Windows, the PATH is handled in a fairly complicated way.  I believe 
this description is correct, but it may not apply to all Windows versions:

The thing you set from within the Control Panel only applies to the 
currently running copy of Explorer.  Other applications that are 
currently running (e.g. an existing CMD shell) do not have their path 
updated.

There are both system and user level PATH settings.  Explorer combines 
them by putting the system settings *first*. 

Within a CMD shell, you can override the PATH completely, just by 
setting it to a new set of directories.

So it looks as though your problem is that your are showing us the user 
settings for the PATH, but not the system settings, and the system 
settings are messing you up.

Duncan Murdoch
#
Dear Duncan

Thank you for this explicit explanation, you are right:

When setting the system variable "Path" (as administrator) in addition 
to setting the user variable "PATH" (as user), now everything works fine.

Interestingly, setting the system variable "Path" on my laptop with 
Rtools27 seems not to be necessary.

May I suggest that  this could be clarified in "R Installation and 
Administration" since there only the user variable "PATH" is mentioned 
(as far as I see).

Thank you all one more time.
Best regards
Christian
Duncan Murdoch wrote:
#
Note that there is an Rcmd.bat batch file in http://batchfiles.googlecode.com
which automatically sets all environment variables for you including the
PATH making it unnecessary to set your PATH or any environment
variables.
On Fri, Dec 5, 2008 at 4:06 PM, cstrato <cstrato at aon.at> wrote:
#
Dear Gabor

Thank you for this interesting link.

Since I have also to set the PATH and LIB for Visual Studio AND for 
ROOT, I am not sure if this would be an option for me.

Best regards
Christian
Gabor Grothendieck wrote:
#
On Fri, 5 Dec 2008, cstrato wrote:

            
In a shell there is only one PATH, so the manual is correct.

  
    
#
Prof Brian Ripley wrote:
I did not say that the manual is not correct, I only suggested to 
clarify the issue, since when running R CMD INSTALL from the Command 
Console I need to set also the system variable "Path".
#
On Fri, Dec 5, 2008 at 4:28 PM, cstrato <cstrato at aon.at> wrote:
Rcmd.bat will not override settings you make yourself.   It basically
defines R_HOME, R_MIKTEX and R_TOOLS environment variables by
looking at the registry or using heuristics but in each case it only
sets the environment variable if its not already set.  Then it uses those
to set up an environment for running R.

If you do want to set them yourself but don't want to muck with the
system Rcmd.bat can look into special files where they can be defined.

There is more info on features and limitations on the homepage and
README.
#
cstrato wrote:
The strategy I use (which I think Gabor's batch file would support, but 
I do it with my own script) is to have a batch file/script to set the 
path up.  I run it within the command shell, and the changes only last 
for the life of that window, they don't affect shells opened in any 
other way.

If you need to build VS projects and also build R packages in the same 
shell, things would be trickier, because there are conflicts with some 
of the R tools and some Microsoft tools (which was the source of your 
original problem).  It is possible to rename the R tools, and modify the 
MkRules file to point to the new versions; it may also be possible to 
rename the MS tools and reconfigure their build system to accommodate.

Duncan Murdoch
#
cstrato wrote:
I'd be reluctant to do this, for the same reason Brian was:  the 
documentation is correct.  You need to set the PATH environment variable 
correctly, and that's what we say.  The fact that doing this is 
complicated and confusing on Windows is a problem with the Windows 
design and documentation, not the R documentation, and Microsoft 
certainly has more resources than we do to address it.  What was their 
response when you asked them to improve their documentation? 

Duncan Murdoch
#
On Sat, Dec 6, 2008 at 8:08 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
The http://batchfiles.googlecode.com home page does give some tips for setting
paths just in case.  Of course if you are using the batchfiles you
won't have to set
any paths in the first place.
#
Dear Duncan, dear Gabor,

Thank you for this additional information and all these great tips.

Setting the system path in the following way solved my problem:
c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Programme\Microsoft 
SQL Server\90\Tools\binn\

Luckily this solves also the problem with potential conflicts between R 
tools, Microsoft tools and ROOT, so that I do not have to rename any 
tools (which I would be reluctant to do).

Since at the moment everything seems to work fine, and I am no Windows 
expert (I do all my development on my Mac), I will keep the current 
setting, however, the next time I have to set up everything, I will try 
to take advantage of Rcmd.bat since Gabor mentions that it will not 
override any of my settings.

Regarding the R installation documentation, I understand now that this 
seems to be a problem of my complicated setup and not a general problem, 
so adding this information may confuse other people.

Best regards
Christian
Gabor Grothendieck wrote:
#
You could leave your path at:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Programme\Microsoft
SQL Server\90\Tools\binn\

and then use Rcmd.bat or rtools.bat to add the rest.

Also there are still two problems:

1. one of the dangers of your setup is that
Rtools has a conflict with Windows since it
has its own find which takes over from Windows' find
and can cause Windows batch files not related to R to fail.
As a result its not a good idea to permanently set your
path to include the rtools but better to do it session
by session so that non-R sessions are unaffected.

2. Also you still don't seem to have MiKTeX on your path
so I don't think its correct yet.  Rcmd.bat or rtools.bat
would add the path to MiKTeX too (if you have it in a
standard location).
On Sat, Dec 6, 2008 at 9:41 AM, cstrato <cstrato at aon.at> wrote:
#
Dear Gabor,

Sorry, my mistake, here are my correct path settings:

System Path:
C:\Rtools\bin;C:\Rtools\perl\bin;C:\Rtools\MinGW\bin;C:\Programme\MiKTeX 
2.7\miktex\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

User PATH:
C:\Rtools\bin;C:\Rtools\perl\bin;C:\Rtools\MinGW\bin;C:\Programme\HTML 
Help Workshop;C:\Programme\R\R-2.8.0\bin;C:\root\bin;

I have just tested again that:
- R CMD check is ok and produces the vignettes
- I can compile my C++ source code with VC++ independently of R

Thus at the moment there seem to be no conflicts, however, this could be 
the case in the future.
Do you have any examples, where the Rtools find can cause conflicts with 
Windows?

Best regards
Christian
Gabor Grothendieck wrote:
#
Any Windows batch script that uses the Windows find command.
On Sat, Dec 6, 2008 at 1:08 PM, cstrato <cstrato at aon.at> wrote:
#
I understand, thank you, Christian
Gabor Grothendieck wrote: