Come installare R 3.3.1 nella mia directory


12

Questa è una domanda un po 'duplicata (vedi Come impostare PATH per R installato nella mia directory ) ma ho riscontrato qualche nuovo problema con la nuova versione di R.

Stavo provando a installare una nuova versione di R (R 3.3.1) nella mia directory. Ho seguito il mio flusso di installazione precedente

Ma ho riscontrato un problema che non avevo prima.

./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

sembra che la versione di zlib sia troppo bassa, quindi ho installato la versione corrente di 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

poi ho provato a fare di nuovo la configurazione per R come:

./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"

ho ancora avuto lo stesso errore:

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

Poi ho notato che qualcuno eludeva il problema modificando il file di configurazione di R.
Ho seguito quell'esempio, risolto l'errore zlib. ma ne sono derivati ​​altri errori. Per farla breve, ho installato altre librerie dipendenti

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"

La configurazione sembrava funzionare:

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

ma quando chiamo

make && make install

ancora "make" non ci è riuscito fino alla fine:

...
  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 

Seguito: in base al suggerimento di thrig, ho aggiunto le righe seguenti al mio file .cshrc

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

e

source .cshrc 

problema risolto!


--prefix=$HOME/Programmee -L/$HOME/Programme/zlib-1.2.11/libsembrano due cose diverse, dov'è effettivamente zlib? (E viene *.pcpkg-config
fornito

@thrig, mi dispiace, non ho inserito correttamente le mie informazioni di configurazione, le ho modificate in modo da renderle esattamente come quelle che ho fatto.
giu

2
Per le librerie condivise "non trovate" sarebbe opportuno impostare un hack rapido LD_LIBRARY_PATHper includere le libdirectory necessarie .
thrig

Se fossi in me, proverei a installare le dipendenze con un prefisso comune come --prefix=/opt(piuttosto che sottodirectory separate --prefix=/opt/zlib-1.2.11e così via), e quindi impostare un percorso di ricerca appropriato per pkg-configesempio export PKG_CONFIG_PATH=/opt/lib/pkgconfig:$PKG_CONFIG_PATHprima di configurareR
steeldriver

@thrig. TKS! ha funzionato!
giugno

Risposte:


5

Questa è la soluzione al problema sopra menzionato

Segui l' esempio per modificare il file di configurazione di R Quindi:

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

modifica il Makefile (originale: CC = gcc dopo la modifica: CC = gcc -fPIC) come suggerito qui

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"

Aggiungi le righe sottostanti al mio file .cshrc

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

e

source .cshrc 

Ora vai alla directory R-3.3.1:

make && make install 

dovrebbe funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.