কীভাবে আমার নিজের ডিরেক্টরিতে আর 3.3.1 ইনস্টল করবেন


12

এটি কিছুটা সদৃশ প্রশ্ন ( আমার ডিরেক্টরিতে ইনস্টল করা আর এর জন্য PATH কীভাবে সেট করবেন তা দেখুন ) তবে আমি আর এর নতুন সংস্করণে কিছু নতুন সমস্যার মুখোমুখি হয়েছি

আমি আমার নিজস্ব ডিরেক্টরিতে আর (আর 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

তারপরে আমি আর এর জন্য আবার কনফিগার করার চেষ্টা করেছি:

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

তারপরে আমি লক্ষ্য করেছি যে কেউ আর এর কনফিগার ফাইলটি পরিবর্তন করে সমস্যাটি
সমাধান করছেন আমি সেই উদাহরণটি অনুসরণ করেছি, 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 

ফলোআপ করুন: থ্রিজের পরামর্শের ভিত্তিতে, আমি আমার .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দুটি ভিন্ন জিনিস মত চেহারা, zlib আসলে কোথায়? (এবং এটি কী কোনও *.pcফাইলের pkg-config
সাহায্যে প্রেরণ করে

@ থ্রিগ, দুঃখিত, আমি আমার কনফিগার তথ্য সঠিকভাবে রাখিনি, আমি এটিকে সম্পাদনা করেছি যাতে এটি আমার মতো করে দেওয়া যায় like
জুন

2
"পাওয়া যায় নি" ভাগ করা লাইব্রেরিগুলির জন্য একটি দ্রুত হ্যাক LD_LIBRARY_PATHপ্রয়োজনীয় libডিরেক্টরি অন্তর্ভুক্ত করতে সেট করা হবে ।
ফ্রি

যদি আমাকে হতাম আমি যেমন একটি সাধারণ উপসর্গ সঙ্গে নির্ভরতা ইনস্টল করার চেষ্টা করুন চাই --prefix=/opt(বরং পৃথক সাব চেয়ে --prefix=/opt/zlib-1.2.11ইত্যাদি), এবং তারপর জন্য একটি উপযুক্ত সন্ধানের পাথ সেটিং pkg-configযেমন export PKG_CONFIG_PATH=/opt/lib/pkgconfig:$PKG_CONFIG_PATHআগে কনফিগারR
steeldriver

@thrig। TKS! এটা কাজ করেছে!
জুন

উত্তর:


5

এটি উপরে বর্ণিত ইস্যুটির সমাধান

আর এর কনফিগার ফাইলটি পরিবর্তন করতে উদাহরণ অনুসরণ করুন :

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

মেকফিলটি পরিবর্তন করুন (মূল: পরিবর্তনের পরে সিসি = জিসিসি: সিসি = জিসিসি-ফাইপিসি) এখানে প্রস্তাবিত হিসাবে

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 

এখন আর -৩.৩.১ ডিরেক্টরিতে যান:

make && make install 

এটার কাজ করা উচিত.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.