From berwin at maths.uwa.edu.au  Wed Feb 13 11:58:18 2008
From: berwin at maths.uwa.edu.au (Berwin A Turlach)
Date: Wed, 13 Feb 2008 18:58:18 +0800
Subject: [Rd] On Section 2.5:Sub-architectures in the R Installation and
 Administration manual
Message-ID: <20080213185818.37426740@berwin-nus1>

Dear all,

there are a few issues regarding Section 2.5: Sub-architectures in the
R Installation and Administration manual (referring to Version 2.6.2)
that I would like to raise:

1.)  The manual states:

    @code{R CMD INSTALL} will detect if more that one build is installed
    and try to install packages with the appropriate library objects
    for each. This will not be done if the package has an executable
    @code{configure} script or a @file{src/Makefile} file.  In such
    cases you can install for extra builds by

    @example
    R --arch=@var{name} CMD INSTALL --libs-only @var{pkg}(s)
    @end example

My experience with the --libs-only flag is that if the installation of
the package fails, then the package is removed.  Is this really desired
behaviour?  If yes, then the manual should perhaps warn that this might
happen.  However, in my opinion, this behaviour is undesirable.  As I
understand it, `--libs-only' would only be used if the package was
already successfully installed for (at least) one sub-architecture.
Why should the failure to install it for another sub-architecture
remove the complete package, including the successful build for another
sub-architecture.

2.) On my machines (running Kubuntu Linux (gutsy)), I usually install a
32 bit version, by specifying r_arch=32 to the configure line, and a 64
version, by specifying r_arch=64 to the configure line. This seems to
be in line with the following recommendation in the manual:

   If you want to mix sub-architectures compiled on different
   platforms (for example @cputype{x86_64} Linux and @cputype{i686}
   Linux), it is wise to use explicit names for each, and you may
   also need to set @option{libdir} to ensure that they
   install into the same place.

However, after installing R 2.6.2 in such manner, trying to start R
resulted in the following error message:

	Error: R executable not found

As far as I can tell, this is due to the code that was added at the
beginning of the bash script R (to support parallel 32/64-bit
installations using multilib on Linux?) which tries to locate the R
executable but does not search deep enough into the directory structure
if multiple architectures are installed using the r_arch option to the
configure line (for both/all architectures).

3) The manual also states in that section:

    On Linux, there is an alternative mechanism for mixing 32-bit and
    64-bit libraries known as @emph{multilib}. If a Linux distribution
    supports multilib, then parallel builds of @R{} may be installed in
    the sub-directories @file{lib} (32-bit) and @file{lib64} (64-bit).
    [...]

As far as I can tell, Kubuntu Linux distributions support multilib.
However on these distributions /lib64 and /usr/lib64 are links to /lib
and /usr/lib, respectively, where the 64-bit libraries reside and the
32-bit libraries reside in /lib32 and /usr/lib32.  Thus, the above
paragraph is somewhat confusing to somebody who is running a Kubuntu
Linux distribution.  (Presumably the same holds for Debian and all
other distributions derived from Debian.)

Cheers,

	Berwin

=========================== Full address =============================
Berwin A Turlach                            Tel.: +65 6515 4416 (secr)
Dept of Statistics and Applied Probability        +65 6515 6650 (self)
Faculty of Science                          FAX : +65 6872 3919       
National University of Singapore     
6 Science Drive 2, Blk S16, Level 7          e-mail: statba at nus.edu.sg
Singapore 117546                    http://www.stat.nus.edu.sg/~statba



[Rd] On Section 2.5:Sub-architectures in the R Installation and Administration manual
Berwin A Turlach