G'day Brian, On Sat, 18 May 2013 10:28:43 +0100 Prof Brian Ripley <rip...@stats.ox.ac.uk> 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"
______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel