Rをソースコードからインストール

スーパーユーザ権限のないサーバにソースコードからインストールしてみたのでそのメモ

大学のサーバなど勝手になんでもインストールできない環境ではローカルのユーザ環境に色々とインストールしないといけません。今回はRをインストールしてみました

Rの取得

cranからRのソースコードをダウンロードしコンパイルします

wget https://cran.r-project.org/src/base/R-3/R-3.3.2.tar.gz
tar zxvfp R-3.3.2.tar.gz
cd R-3.3.2
mkdir builddir
cd builddir
../configure --prefix=/work/$USER/local --with-cairo --with-jpeglib --with-readline --with-tcltk --with-blas --with-lapack --enable-R-profiling --enable-R-shlib --enable-memory-profiling 

エラーになります

checking if bzip2 version >= 1.0.6... no
checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required

足りないライブラリを入れていきます

bzip2

wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar zxvfp bzip2-1.0.6.tar.gz
cd bzip2-1.0.6

このあたりを参考にMakefileを修正しておきます。CFLAGSに-fPICを追加します

CFLAGS=-fPIC -Wall -Winline -O2 -g $(BIGFILES)

makeします

make -f Makefile-libbz2_so
make clean
make
make -n install PREFIX=/work/$USER/local
make install PREFIX=/work/$USER/local

Rのconfigを再開します。この際、オプションにライブラリのパスを入れます

../configure --prefix=/work/$USER/local --with-cairo --with-jpeglib --with-readline --with-tcltk --with-blas --with-lapack --enable-R-profiling --enable-R-shlib --enable-memory-profiling CPPFLAGS="-I/work/$USER/local/include" LDFLAGS="-L/work/$USER/local/lib"

またエラーです

checking for lzma_version_number in -llzma... no
configure: error: "liblzma library and headers are required"

xz

xzライブラリを入れます。

wget http://tukaani.org/xz/xz-5.2.3.tar.gz
tar zxvfp xz-5.2.3.tar.gz 
cd xz-5.2.3
./configure --prefix=/work/$USER/local
make install

Rのconfigを再開

../configure --prefix=/work/$USER/local --with-cairo --with-jpeglib --with-readline --with-tcltk --with-blas --with-lapack --enable-R-profiling --enable-R-shlib --enable-memory-profiling CPPFLAGS="-I/work/$USER/local/include" LDFLAGS="-L/work/$USER/local/lib"

またエラー

checking for pcre_fullinfo in -lpcre... no
checking whether PCRE support suffices... configure: error: pcre >= 8.10 library

pcre

pcreライブラリを入れる。ここで、UTF8を有効にしておきます

wget https://ftp.pcre.org/pub/pcre/pcre-8.10.zip
unzip pcre-8.10.zip 
cd pcre-8.10
./configure --prefix=/work/$USER/local/ --enable-utf8
make install

Rのconfigを再開

checking if libcurl is version 7 and >= 7.28.0... no
configure: error: libcurl >= 7.28.0 library and headers are required with support for https

またエラーです

curl

wget --no-check-certificate https://curl.haxx.se/download/curl-7.47.1.tar.gz
tar zxvfp curl-7.47.1.tar.gz 
cd curl-7.47.1
./configure --prefix=/work/$USER/local
make -j3
make install

Rのconfigを再開

../configure --prefix=/work/$USER/local --with-cairo --with-jpeglib --with-readline --with-tcltk --with-blas --with-lapack --enable-R-profiling --enable-R-shlib --enable-memory-profiling CPPFLAGS="-I/work/$USER/local/include" LDFLAGS="-L/work/$USER/local/lib"

成功しました

コンパイル

make

またエラー。。

/work/xxxxx/work/R-3.3.2/builddir/bin/exec/R: /usr/lib64/libgomp.so.1: version `GOMP_4.0' not found (required by /work/xxxxx/work/R-3.3.2/builddir/lib/libR.so)

これは使っているGCCとそのライブラリがずれていたためでした。
LD_LIBRARY_PATHに使っているGCCのライブラリパスを前の方に追加し再度make

make
make install

これでOKです。