G'day Brian,
On Sat, 18 May 2013 10:28:43 +0100
Prof Brian Ripley <[email protected]> wrote:
[...]
> > Is it necessary for R >= 3.0.1 to have one build as
> > "main"-architecture and the other one as sub-architecture? I could
> > not find anything in the NEWS file or the Admin manual that
> > indicated that this would now be necessary.
>
> Not exclusively, but as the Mac build no longer uses this, we do need
> people who do to test pre-releases. One of us needs to build such a
> setup and test it ....
Either that, or amend the administration and installation manual to
state that one installation should not be a sub-architecture
installation. :)
But the latter solution also seems to have some problems. My usual
install script did the following:
1) Run ./configure with 'r_arch=32' (and a few other options) using a
config.site, configured for a 32bit build; followed by make
2) make check ; make install
3) `make distclean'; run ./configure with 'r_arch=64' (and a few other
options using a config.site configured for a 64 bit build; followed
by make
4) make check ; make install
5) make pdf info; make install-pdf install-info
When trying to install Rgraphviz afterwards (mmh, this is a
BioConductor package and not a CRAN package, so perhaps I should ask on
their lists?), Rgrahviz couldn't find the correct compiler settings as
"R CMD config ..." did not work (as reported originally).
So I changed my install script to remove the 'r_arch=64' in step 3.
(The modified script is attached.) But now, trying to install
Rgraphviz falls over earlier when a dependencies of Rgraphviz,
BiocGenerics, is installed. Trying to install BiocGenerics fails with:
[...]
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - 32
*** arch - R
ERROR: sub-architecture 'R' is not installed
ERROR: loading failed for 'R'
* removing '/opt/R/R-3.0.1/lib/R/library/BiocGenerics'
I have no idea why the process tries to check for an 'arch - R'. But
this seems to be happening for packages that do not contain code that
needs to be compiled, another example is 'car' which is needed by 'AER'.
So I am bit puzzled how I should change my scripts. Does step 3 needs
something stronger than 'make distclean'? Or should the 'r_arch=32' be
dropped in step 1 but step 3 should use 'r_arch=64'?
Essentially, I would like to install 32bit and 64bit builds on my
machines, with one or both as sub-architectures (to save space) and
with the 64bit the 'default', i.e. the one that is run by
${R_HOME}/bin/R.
Cheers,
Berwin
#!/bin/bash -e
VERSION=3.0.1
part1a ()
{
cd /opt/src/R-$VERSION
echo "**********************"
echo "*** configure (32bit) "
echo "**********************"
cp ../R-config.site-32 config.site
./configure --prefix=/opt/R/R-$VERSION --with-blas --with-lapack
--enable-R-shlib r_arch=32 | tee CONFIGURE_32
echo "*********************"
echo "*** make (32 bit) "
echo "*********************"
make -j6
}
part2()
{
echo "*********************"
echo "*** make check "
echo "*********************"
make check
make install
}
part1b ()
{
echo "**********************"
echo "*** configure (64bit) "
echo "**********************"
make distclean
cp ../R-config.site-64 config.site
./configure --prefix=/opt/R/R-$VERSION --with-blas --with-lapack
--enable-R-shlib | tee CONFIGURE_64
echo "*********************"
echo "*** make (64 bit) "
echo "*********************"
make -j6
}
part3 ()
{
echo "**********************"
echo "*** make documentation"
echo "**********************"
make pdf info
make install-pdf install-info
}
export http_proxy=http://proxy.uwa.edu.au:8888
export LANG=en_AU.UTF-8
echo "Installing R-$VERSION"
part1a > /opt/src/R-$VERSION-LOG 2>&1
part2 > /opt/src/R-$VERSION-CheckLOG 2>&1
part1b >> /opt/src/R-$VERSION-LOG 2>&1
part2 >> /opt/src/R-$VERSION-CheckLOG 2>&1
part3 >> /opt/src/R-$VERSION-LOG 2>&1
echo "Done"
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel