How to install R 3.3.1 in my own directory

18,333

This is the solution to the issue mentioned above

Follow the example to modify the configure file of R Then:

tar xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=$HOME/Programme/zlib-1.2.11
make && make install

tar zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make -f Makefile-libbz2_so
make clean

modify the Makefile (original: CC=gcc after modification: CC=gcc -fPIC) as suggested here

make 
make install PREFIX=$HOME/Programme/bzip2-1.0.6

tar zxvf xz-5.2.3.tar.gz
cd xz-5.2.3
./configure --prefix=$HOME/Programme/xz-5.2.3
make -j3
make install

tar zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure  --prefix=$HOME/Programme/pcre-8.40  --enable-utf8
make -j3 && make install

tar zxvf curl-7.52.1.tar.gz
cd curl-7.52.1
./configure  --prefix=$HOME/Programme/curl-7.52.1 --with-ssl
make && make install

./configure --prefix=$HOME/Programme/R-3.3.1 --enable-R-shlib LDFLAGS="-L/$HOME/Programme/zlib-1.2.11/lib -L/$HOME/Programme/bzip2-1.0.6/lib -L/$HOME/Programme/xz-5.2.3/lib -L/$HOME/Programme/pcre-8.40/lib -L/$HOME/Programme/curl-7.52.1/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/$HOME/Programme/bzip2-1.0.6/include -I/$HOME/Programme/xz-5.2.3/include -I/$HOME/Programme/pcre-8.40/include -I/$HOME/Programme/curl-7.52.1/include"

Add the lines below to my .cshrc file

setenv LD_LIBRARY_PATH $HOME/Programme/pcre-8.40/lib
setenv LD_LIBRARY_PATH $HOME/Programme/xz-5.2.3/lib

and

source .cshrc 

Now go to R-3.3.1 directory:

make && make install 

it should work.

Share:
18,333

Related videos on Youtube

Jun
Author by

Jun

Updated on September 18, 2022

Comments

  • Jun
    Jun over 1 year

    This is a somewhat duplicate question (see How to set PATH for R installed in my directory ) but I did meet some new problem with new version of R.

    I was trying install a new version of R (R 3.3.1) in my own directory. I followed my previous installation flow

    But I met an issue which I did not have before.

    ./configure --prefix=$HOME/Programme/R-3.3.1 
    .......
    checking for zlib.h... yes
    checking if zlib version >= 1.2.5... no
    checking whether zlib support suffices... configure: error: zlib library and headers are required
    

    it seems that the zlib version is too low, so I installed the current version of zlib

    tar xvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
     ./configure --prefix=$HOME/Programme/zlib-1.2.11
    make && make install
    

    then I tried to do the configure for R again like:

    ./configure --prefix=$HOME/Programme/R-3.3.1 --enable-R-shlib LDFLAGS="-L/$HOME/Programme/zlib-1.2.11/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include"
    

    still I had the same error:

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

    Then I noticed someone circumvent the problem by modify the configure file of R
    I followed that example, solved the zlib error. but other errors ensued. To put a long story short, I installed other dependent libraries

    tar xvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure --prefix=$HOME$Programme/zlib-1.2.11
    make && make install
    
    tar zxvf bzip2-1.0.6.tar.gz
    cd bzip2-1.0.6
    make -f Makefile-libbz2_so
    make clean
    # modify the Makefile (original: CC=gcc after modification: CC=gcc -fPIC) as suggested [here][2]
    make 
    make install PREFIX=/opt/bzip2-1.0.6
    
    tar zxvf xz-5.2.3.tar.gz
    cd /root/xz-5.2.3
    ./configure --prefix=$HOME/Programme/xz-5.2.3
    make -j3
    make install
    
    tar zxvf pcre-8.40.tar.gz
    cd /root/pcre-8.40
    ./configure  --prefix=$HOME/Programme/pcre-8.40  --enable-utf8
    make -j3 && make install
    
    tar zxvf curl-7.52.1.tar.gz
    cd /root/curl-7.52.1
    ./configure  --prefix=$HOME/Programme/curl-7.52.1
    make && make install
    
    ./configure --prefix=$HOME/Programme/R-3.3.1 --enable-R-shlib LDFLAGS="-L/$HOME/Programme/zlib-1.2.11/lib -L/$HOME/Programme/bzip2-1.0.6/lib -L/$HOME/Programme/xz-5.2.3/lib -L/$HOME/Programme/pcre-8.40/lib -L/$HOME/Programme/curl-7.52.1/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/$HOME/Programme/bzip2-1.0.6/include -I/$HOME/Programme/xz-5.2.3/include -I/$HOME/Programme/pcre-8.40/include -I/$HOME/Programme/curl-7.52.1/include"
    

    The configure seemed to work:

    R is now configured for x86_64-pc-linux-gnu
    
      Source directory:          .
      Installation directory:    $HOME/Programme/R-3.3.1
    
      C compiler:                gcc -std=gnu99  -g -O2
      Fortran 77 compiler:       gfortran  -g -O2
    
      C++ compiler:              g++  -g -O2
      C++11 compiler:            g++  -std=c++0x -g -O2
      Fortran 90/95 compiler:    gfortran -g -O2
      Obj-C compiler:         
    
      Interfaces supported:      X11, tcltk
      External libraries:        readline, curl
      Additional capabilities:   PNG, JPEG, NLS, cairo, ICU
      Options enabled:           shared R library, shared BLAS, R profiling
    
      Capabilities skipped:      TIFF
      Options not enabled:       memory profiling
      Recommended packages:      yes
    

    but when I call

    make && make install
    

    still "make" could not make it until the end:

    ...
      gcc -std=gnu99 -Wl,--export-dynamic -fopenmp  -L../../lib -L//HOME/Programme/zlib-1.2.11/lib -L//HOME/Programme/bzip2-1.0.6/lib -L//HOME/Programme/xz-5.2.3/lib -L//HOME/Programme/pcre-8.40/lib -L//HOME/Programme/curl-7.52.1/lib -o R.bin Rmain.o  -lR -lRblas
    /usr/bin/ld: warning: libpcre.so.1, needed by ../../lib/libR.so, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: liblzma.so.5, needed by ../../lib/libR.so, not found (try using -rpath or -rpath-link)
    ../../lib/libR.so: undefined reference to `pcre_fullinfo'
    ../../lib/libR.so: undefined reference to `lzma_lzma_preset@XZ_5.0'
    ../../lib/libR.so: undefined reference to `lzma_alone_decoder@XZ_5.0'
    ../../lib/libR.so: undefined reference to `lzma_crc64@XZ_5.0'
    ../../lib/libR.so: undefined reference to `lzma_raw_encoder@XZ_5.0'
    ../../lib/libR.so: undefined reference to `pcre_config'
    ../../lib/libR.so: undefined reference to `lzma_code@XZ_5.0'
    ../../lib/libR.so: undefined reference to `lzma_stream_decoder@XZ_5.0'
    ../../lib/libR.so: undefined reference to `pcre_free'
    ../../lib/libR.so: undefined reference to `lzma_raw_decoder@XZ_5.0'
    ../../lib/libR.so: undefined reference to `pcre_exec'
    ../../lib/libR.so: undefined reference to `lzma_version_string@XZ_5.0'
    ../../lib/libR.so: undefined reference to `pcre_maketables'
    ../../lib/libR.so: undefined reference to `lzma_stream_encoder@XZ_5.0'
    ../../lib/libR.so: undefined reference to `pcre_compile'
    ../../lib/libR.so: undefined reference to `pcre_study'
    ../../lib/libR.so: undefined reference to `pcre_version'
    ../../lib/libR.so: undefined reference to `lzma_end@XZ_5.0'
    collect2: error: ld returned 1 exit status
    
    ...
    make: *** [R] Error 1 
    

    Follow up: Based on thrig 's suggestion, I added the lines below to my .cshrc file

    setenv LD_LIBRARY_PATH $HOME/Programme/pcre-8.40/lib
    setenv LD_LIBRARY_PATH $HOME/Programme/xz-5.2.3/lib
    

    and

    source .cshrc 
    

    problem solved!