এটি কিছুটা সদৃশ প্রশ্ন ( আমার ডিরেক্টরিতে ইনস্টল করা আর এর জন্য 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
সমস্যা সমাধান!
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
--prefix=$HOME/Programme
এবং-L/$HOME/Programme/zlib-1.2.11/lib
দুটি ভিন্ন জিনিস মত চেহারা, zlib আসলে কোথায়? (এবং এটি কী কোনও*.pc
ফাইলেরpkg-config