Cách cài đặt R 3.3.1 trong thư mục của riêng tôi


12

Đây là một câu hỏi hơi trùng lặp (xem Cách đặt PATH cho R được cài đặt trong thư mục của tôi ) nhưng tôi đã gặp một số vấn đề mới với phiên bản mới của R.

Tôi đã thử cài đặt phiên bản mới của R (R 3.3.1) trong thư mục của riêng tôi. Tôi đã theo dòng cài đặt trước đó của tôi

Nhưng tôi đã gặp một vấn đề mà trước đây tôi không có.

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

Có vẻ như phiên bản zlib quá thấp, vì vậy tôi đã cài đặt phiên bản hiện tại của 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

sau đó tôi đã thử làm lại cấu hình cho R như sau:

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

tôi vẫn có lỗi tương tự:

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

Sau đó, tôi nhận thấy ai đó khắc phục sự cố bằng cách sửa đổi tệp cấu hình của R
Tôi đã làm theo ví dụ đó, đã giải quyết lỗi zlib. nhưng các lỗi khác xảy ra sau đó. Để viết một câu chuyện dài, tôi đã cài đặt các thư viện phụ thuộc khác

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"

Cấu hình dường như hoạt động:

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

nhưng khi tôi gọi

make && make install

vẫn "làm" không thể làm cho đến khi kết thúc:

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

Theo dõi: Dựa trên đề xuất của thrig, tôi đã thêm các dòng bên dưới vào tệp .cshrc của mình

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

source .cshrc 

Vấn đề được giải quyết!


--prefix=$HOME/Programme-L/$HOME/Programme/zlib-1.2.11/libtrông giống như hai điều khác nhau, zlib thực sự ở đâu? (Và nó xuất xưởng với một *.pctập tin để bạn có thể sử dụng pkg-config?)
thrig

@thrig, xin lỗi, tôi đã không đặt thông tin cấu hình của mình một cách chính xác, tôi đã chỉnh sửa nó để làm cho nó chính xác như những gì tôi đã làm.
6

2
Đối với các thư viện chia sẻ "không tìm thấy", một bản hack nhanh sẽ được thiết lập LD_LIBRARY_PATHđể bao gồm các libthư mục cần thiết .
thrig

Nếu là tôi, tôi sẽ thử cài đặt các phụ thuộc với một tiền tố phổ biến, chẳng hạn như --prefix=/opt(chứ không phải các thư mục con riêng biệt --prefix=/opt/zlib-1.2.11, v.v.), sau đó đặt đường dẫn tìm kiếm thích hợp, pkg-configví dụ như export PKG_CONFIG_PATH=/opt/lib/pkgconfig:$PKG_CONFIG_PATHtrước khi định cấu hìnhR
Steelepage

@thrig. TKS! nó đã làm việc!
Tháng Sáu

Câu trả lời:


5

Đây là giải pháp cho vấn đề nêu trên

Thực hiện theo ví dụ để sửa đổi tệp cấu hình của R Then:

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

sửa đổi Makefile (bản gốc: CC = gcc sau khi sửa đổi: CC = gcc -fPIC) như đề xuất ở đây

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"

Thêm các dòng dưới đây vào tập tin .cshrc của tôi

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

source .cshrc 

Bây giờ hãy vào thư mục R-3.3.1:

make && make install 

nó nên hoạt động

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.