मेरी अपनी निर्देशिका में R 3.3.1 कैसे स्थापित करें


12

यह कुछ हद तक डुप्लिकेट प्रश्न है (देखें कि मेरी निर्देशिका में RAT के लिए PATH कैसे सेट किया जाए ) लेकिन मैंने R के नए संस्करण के साथ कुछ नई समस्या को पूरा किया।

मैं अपनी स्वयं की निर्देशिका में R (R 3.3.1) का नया संस्करण स्थापित करने का प्रयास कर रहा था। मैंने अपने पिछले स्थापना प्रवाह का अनुसरण किया

लेकिन मैं एक ऐसे मुद्दे से मिला, जो पहले मेरे पास नहीं था।

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

ऐसा लगता है कि zlib संस्करण बहुत कम है, इसलिए मैंने 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

फिर मैंने R को फिर से कॉन्फ़िगर करने की कोशिश की जैसे:

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

अभी भी मैं एक ही त्रुटि थी:

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

तब मैंने देखा कि किसी ने R के कॉन्फ़िगर फ़ाइल को संशोधित करके समस्या को दरकिनार
किया था, मैंने उस उदाहरण का अनुसरण किया, 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

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"

कॉन्फ़िगर काम करने के लिए लग रहा था:

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

लेकिन जब मैं फोन करता हूं

make && make install

अभी भी "बना" अंत तक नहीं बना सका:

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

अनुवर्ती: thrig के सुझाव के आधार पर, मैंने अपनी .cshrc फ़ाइल के नीचे की पंक्तियाँ जोड़ीं

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

तथा

source .cshrc 

समस्या सुलझ गयी!


--prefix=$HOME/Programmeऔर -L/$HOME/Programme/zlib-1.2.11/libदो अलग-अलग चीजों की तरह दिखते हैं, वास्तव में ज़ालिब कहाँ है? (और यह एक *.pcफ़ाइल के साथ जहाज करता है ताकि आप उपयोग कर सकें pkg-config?)
थ्रिग करें

@ हां, क्षमा करें, मैंने अपनी कॉन्फ़िगर की गई जानकारी को सही तरीके से नहीं रखा है, मैंने इसे संपादित किया है ताकि इसे ठीक वैसे ही बना सकूं जैसे मैंने किया है।
जून

2
"नहीं मिला" साझा पुस्तकालयों के LD_LIBRARY_PATHलिए आवश्यक libनिर्देशिकाओं को शामिल करने के लिए एक त्वरित हैक सेट करना होगा ।
17

अगर यह मेरे थे, तो मैं एक सामान्य उपसर्ग के साथ निर्भरताएं स्थापित करने की कोशिश करूंगा, जैसे --prefix=/opt(अलग-अलग उपनिर्देशिका --prefix=/opt/zlib-1.2.11और इतने पर), और फिर कॉन्फ़िगर करने से पहले pkg-configउदाहरण के लिए एक उपयुक्त खोज पथ सेट करनाexport PKG_CONFIG_PATH=/opt/lib/pkgconfig:$PKG_CONFIG_PATHR
Steeldriver

@thrig। टी.के.एस! इसने काम कर दिया!
Jun

जवाबों:


5

यह ऊपर उल्लिखित मुद्दे का समाधान है

R की कॉन्फ़िगर फ़ाइल को संशोधित करने के लिए उदाहरण का अनुसरण करें :

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

मेकफाइल (मूल: CC = gcc को संशोधन के बाद संशोधित करें: CC = gcc -fPIC) जैसा कि यहाँ सुझाया गया है

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"

मेरे .cshrc फ़ाइल के नीचे की पंक्तियाँ जोड़ें

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

तथा

source .cshrc 

अब R-3.3.1 निर्देशिका पर जाएं:

make && make install 

यह काम करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.