Skip to content

R CMD install on R 2.5.0 alpha

7 messages · Henrik Bengtsson, Brian Ripley

#
Hi,

I've just downloaded the latest R v2.5.0 alpha (2007-04-04 r41043) for
WinXP.  When I try to
install a package R tries to install it to a no-name (empty name)
directory (causing error downstream):

RCMD INSTALL R.oo
installing to ''

FYI: Package install perfectly on R v2.4.1 patched, and did so also on
earlier R v2.5.0 devel/alpha(?) versions.

Current directory is:
C:\tmp

with subdirectory R.oo/ containing inst/ man/ R/ DESCRIPTION as usual.

I noticed the following in CHANGES and NEWS related to R CMD INSTALL:

 o	R CMD INSTALL now installs by default into the first library on
	the library path if R was run in the current environment.
	Similarly, R CMD REMOVE by default removes from that library.
	R CMD INSTALL does a better job of removing its temporary
	directory.

 o	R CMD INSTALL and R CMD REMOVE now use as the default library
	(if -l is not specified) the first library that would be used
	if R were run in the current environment (and they run R to
	find it).

    o	R CMD INSTALL now prepends the installation directory (if
	specified) to the library search path.

But my I do have:
[1] "C:/PROGRA~1/R/R-2.5.0alpha/library"

My setup:
echo %RHOME%:
C:\PROGRA~1\R\R-2.5.0alpha
[1] "C:/PROGRA~1/R/R-2.5.0alpha/library"
R version 2.5.0 alpha (2007-04-04 r41043)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MON
ETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"
[7] "base"


Any help appreciated

Henrik
#
Nothing has changed here for three months, AFAICS.  However, I noticed you 
have installed R into a directory with a space in the path, despite the 
advice not to.  OTOH, I have just tested installing where you did, and
was able to install R.oo:

[c:/Program Files/R/R-2.5.0alpha/bin]% ./Rcmd INSTALL d:/R/packages/contrib/R.oo_1.2.3.tar.gz
installing to 'c:/PROGRA~1/R/R-25~1.0AL/library'
...

On Windows, INSTALL is a Perl script.  Please debug it to see what is 
going wrong on your setup (it is working for many others).

You can of course specify -l to workaround this.
On Sat, 7 Apr 2007, Henrik Bengtsson wrote:

            
That is not the latest binary build I am offered, let alone the latest 
sources.

  
    
#
Hi.
On 4/7/07, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
Thank you for this confirmation.  It is odd though, because so have
also I done successfully for years.
I will debug INSTALL to see what might go wrong.  I'll see if I can
locate an earlier version of R 2.5.0 alpha to see if the error really
is there or not.
Got it from the UC Davis CRAN mirror about an one hour before my message.

Thanks

Henrik
#
On Sat, 7 Apr 2007, Henrik Bengtsson wrote:

            
There is not much point in getting alpha/betas from mirrors: they can 
introduce another 24-hour delay.

  
    
#
I located the problem to INSTALL.  If no the library path is not
passed explicitly, that is no -l option is use, the following code in
called:

132:    my @out = R_runR("cat(.libPaths()[1])", "--slave");
133:    $library = @out[0];
134:    $library = Win32::GetShortPathName($library) if $library =~ / /;
135:    print "installing to '$library'\n";

In my .Rprofile I write a message "$HOME2/.Rprofile ...done" to
stdout.  This is what is picked up in @out[0] above, and then I guess
the code on line 134 turns this into an empty string (somehow).  By
adding option --vanilla to the R call, this problem goes away.

Here is a patch to $R_HOME/bin/INSTALL.

C:\Program Files\R\R-2.5.0alpha\bin>diff INSTALL INSTALL.new
132c132
<     my @out = R_runR("cat(.libPaths()[1])", "--slave");
---
I'm not sure if that INSTALL is in the source.  The only thing I can
find in the SVN is INSTALL.in
(https://svn.r-project.org/R/trunk/src/scripts/INSTALL.in), but that
contains no such line of code?!?

/Henrik
On 4/7/07, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
#
The file is src/gnuwin32/fixed/bin/INSTALL.

You do not want --vanilla: the point is to run R under normal conditions 
to pick up the value it uses.   There is a workaround on the Unix side, nd 
I will add a similar one to the Windows code.

There will be the usual delays in this getting into an alpha Windows 
binary, so please try

https://svn.r-project.org/R/trunk/src/gnuwin32/fixed/bin/INSTALL

(save it and drop it into the R_HOME/bin directory).
On Sat, 7 Apr 2007, Henrik Bengtsson wrote:

            

  
    
#
On 4/7/07, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
Ah, you're right, that was the purpose of adding it the first place.
Done. Tested. Works. Thanks!

/Henrik