I have the 64 bit version of R compiled from source on my Ubuntu laptop. I recently had a need for R based on 32 bit since a package I needed to compile and use only works in 32 bit. I thought it was readily available on Ubuntu since both 32 bit and 64 bit versions of R are shipped with the Windows and Mac OS X installers. I tried figuring out how to do so using the manual (R 2.13.1), but could not figure it out on my own. I seeked help on R-devel and received some helpful responses.
Here is a quick reminder for myself:
## download R source from tar ball or svn ## working directory has R/trunk/ ## run in trunk ./tools/rsync-recommended sudo apt-get install ia32-libs lib32readline6-dev lib32ncurses5-dev lib32icu-dev gcc-multilib gfortran-multilib ## ubuntu does not have ia32-libs-dev # cd ../.. # mkdir R32 # cd R32 # ../R/trunk/configure r_arch=i386 CC='gcc -std=gnu99 -m32' CXX='g++ -m32' FC='gfortran -m32' F77='gfortran -m32' # make -j24 && sudo make install # cd .. # mkdir R64 # ../R/trunk/configure r_arch=amd64 # make -j24 && sudo make install ./configure r_arch=i386 CC='gcc -std=gnu99 -m32' CXX='g++ -m32' FC='gfortran -m32' F77='gfortran -m32' make -j24 && sudo make install make clean ./configure r_arch=amd64 make -j24 && sudo make install
You can build directly in the
R/trunk, but make sure you execute
make clean first to clear out any previous builds. Not doing so gave me errors like:
/usr/bin/install: cannot create regular file `../../include/i386/Rconfig.h': No such file or directory
R will give me the 64 bit version of R (whatever was the last build). If I want to specify the arch, I can just issue the commands
R --arch i386 or
R --arch amd64. When launching R in emacs, do
C-u M-x R and type in the
make uninstall to remove R prior to installing a new version of R to the same location.