GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menginstal R 3.3.1 Di Direktori Sendiri?

Ini adalah pertanyaan yang agak duplikat (lihat Cara mengatur PATH untuk R yang diinstal di direktori saya) tetapi saya menemukan beberapa masalah baru dengan versi baru R.

Saya mencoba menginstal versi baru R (R 3.3.1) di direktori saya sendiri.
Saya mengikuti alur instalasi sebelumnya

Tapi saya menemui masalah yang tidak saya alami sebelumnya.

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

sepertinya versi zlib terlalu rendah, jadi saya menginstal versi zlib saat ini

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

kemudian saya mencoba melakukan konfigurasi untuk R lagi seperti:

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

masih saya memiliki kesalahan yang sama:

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

Kemudian saya melihat seseorang menghindari masalah dengan memodifikasi file konfigurasi R
Saya mengikuti contoh itu, memecahkan kesalahan zlib.
tetapi kesalahan lain terjadi. Singkatnya,
saya menginstal perpustakaan dependen lainnya

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"

Konfigurasi tampaknya berfungsi:

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

tetapi ketika saya menelepon

make && make install

masih "membuat" tidak bisa sampai akhir:

...
  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 `[email protected]_5.0'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `pcre_config'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `pcre_free'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `pcre_exec'
../../lib/libR.so: undefined reference to `[email protected]_5.0'
../../lib/libR.so: undefined reference to `pcre_maketables'
../../lib/libR.so: undefined reference to `[email protected]_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 `[email protected]_5.0'
collect2: error: ld returned 1 exit status

...
make: *** [R] Error 1 

Tindak lanjut:
Berdasarkan saran thrig, saya menambahkan baris di bawah ini ke file .cshrc saya

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

dan

source .cshrc 

masalah terpecahkan!

Terkait:Bagaimana cara `date` menampilkan waktu dari zona waktu yang berbeda?

Jawaban yang Diterima:

Ini adalah solusi untuk masalah yang disebutkan di atas

Ikuti contoh untuk memodifikasi file konfigurasi R Kemudian:

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

modifikasi Makefile (asli:CC=gcc setelah modifikasi:CC=gcc -fPIC) seperti yang disarankan di sini

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"

Tambahkan baris di bawah ini ke file .cshrc saya

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

dan

source .cshrc 

Sekarang masuk ke direktori R-3.3.1:

make && make install 

itu harus bekerja.


Linux
  1. Cara menginstal resolver DNS Tidak Terikat di Ubuntu 22.04

  2. Bagaimana Cara Menginstal dan Mengkonfigurasi HAProxy di CentOS?

  3. Bagaimana cara mendapatkan direktori absolut dari sebuah file di bash?

  1. Cara Menginstal Server Web Apache di Ubuntu

  2. Bagaimana cara menginstal Firefox asli di Debian?

  3. cara menentukan direktori target unzip

  1. Cara Menggunakan Perintah cd Linux untuk Mengubah Direktori

  2. Bagaimana cara mengatur direktori kerja dari proses induk?

  3. Bagaimana cara mengubah direktori awal sesi tmux?