2017-11-12 9 views
0

Scientific Linux 6.6이 설치된 시스템에 R-3.2.5lme4을 궁극적으로 설치하려고합니다. 나는 공유 시스템 (분산 컴퓨팅 문제를 위해 R 패키지를 컴파일 중)에 있기 때문에 모든 패키지를 비표준 위치 (보통 /usr/local/ 대신 /a/lot/of/subdirectories/R-3.2.5)에 설치해야합니다.Scientific Linux 6.6에서 비표준 위치에 minqa를 설치하는 중 오류가 발생했습니다.

는 이미 R에 보통 install.packages 명령을 사용하여 설치하지 것이다 lme4 의존성, nloptr를 설치하는 데 문제가 많이 발생했습니다. 결국 을 다운로드하고 설치 한 다음 install.packagesR에 호출 할 때 설치된 라이브러리에 링크했습니다. 현재 minqa 라이브러리 (다른 lme4 종속성)를 설치하는 데 문제가 있습니다. 내가 Rminqa 다음 명령을 설치하려고 할 때 다음 오류 메시지입니다 : 내가 R를 설치 한 위치 /usr/local/lib64 대신 실제 위치를 참조하려고 install.packages에서 g++처럼 install.packages("minqa")

trying URL 'http://cran.revolutionanalytics.com/src/contrib/minqa_1.2.4.tar.gz' 
Content type 'application/octet-stream' length 53548 bytes (52 KB) 
================================================== 
downloaded 52 KB 

* installing *source* package ‘minqa’ ... 
** package ‘minqa’ successfully unpacked and MD5 sums checked 
** libs 
gfortran -fpic -g -O2 -c altmov.f -o altmov.o 
gfortran -fpic -g -O2 -c bigden.f -o bigden.o 
gfortran -fpic -g -O2 -c biglag.f -o biglag.o 
gfortran -fpic -g -O2 -c bobyqa.f -o bobyqa.o 
gfortran -fpic -g -O2 -c bobyqb.f -o bobyqb.o 
gfortran -fpic -g -O2 -c lagmax.f -o lagmax.o 
g++ -I/var/lib/condor/execute/slot1/dir_20833/R-3.2.5/lib64/R/include -DNDEBUG -I/usr/local/include -I"/var/lib/condor/execute/slot1/dir_20833/R-3.2.5/lib64/R/library/Rcpp/include" -fpic -g -O2 -c minqa.cpp -o minqa.o 
gfortran -fpic -g -O2 -c newuoa.f -o newuoa.o 
gfortran -fpic -g -O2 -c newuob.f -o newuob.o 
gfortran -fpic -g -O2 -c prelim.f -o prelim.o 
gfortran -fpic -g -O2 -c rescue.f -o rescue.o 
gfortran -fpic -g -O2 -c trsapp.f -o trsapp.o 
gfortran -fpic -g -O2 -c trsbox.f -o trsbox.o 
gfortran -fpic -g -O2 -c trstep.f -o trstep.o 
gfortran -fpic -g -O2 -c uobyqa.f -o uobyqa.o 
gfortran -fpic -g -O2 -c uobyqb.f -o uobyqb.o 
gfortran -fpic -g -O2 -c update.f -o update.o 
gfortran -fpic -g -O2 -c updatebobyqa.f -o updatebobyqa.o 
g++ -shared -L/usr/local/lib64 -o minqa.so altmov.o bigden.o biglag.o bobyqa.o bobyqb.o lagmax.o minqa.o newuoa.o newuob.o prelim.o rescue.o trsapp.o trsbox.o trstep.o uobyqa.o uobyqb.o update.o updatebobyqa.o Fatal error: creating temporary file for '-e' failed -lgfortran -lm 
g++: Fatal: No such file or directory 
g++: error:: No such file or directory 
g++: creating: No such file or directory 
g++: temporary: No such file or directory 
g++: file: No such file or directory 
g++: for: No such file or directory 
g++: '-e': No such file or directory 
g++: failed: No such file or directory 
make: *** [minqa.so] Error 1 
ERROR: compilation failed for package ‘minqa’ 
* removing ‘/var/lib/condor/execute/slot1/dir_20833/R-3.2.5/lib64/R/library/minqa’ 

The downloaded source packages are in 
     ‘/var/lib/condor/execute/slot1/dir_20833/RtmpruzdgN/downloaded_packages’ 
Updating HTML index of packages in '.Library' 
Making 'packages.html' ... done 
Warning message: 
In install.packages("minqa") : 
    installation of package ‘minqa’ had non-zero exit status 

것 같습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? install.packages (예 : configure.args 옵션)에 전달할 수있는 인수가 있습니까? g++에게 무엇을 할 것인지 알려주시겠습니까?

+1

* 해당 파일 또는 디렉토리 * 오류로 인해 형식이 잘못된 명령이 제안되었습니다. 'configure.args'를 사용 했습니까? 'install.packages' 명령을 올리시겠습니까? –

+0

@KevinArseneau 업데이트되었습니다. 나는 단지'install.packages ("minqa")'를 사용하고있다. –

+0

안타깝게도 특별히 'minqa'에 익숙하지는 않지만'--with-'minqa'-lib = --with- 'minqa'-include = '값이 올 바르면 성공적으로 빌드 할 수 있어야한다고 가정합니다. –

답변

0

용액 다각적 하였다

  1. devtools 패키지를 사용 install_github Github의 nloptr에서 설치. 내가 발견 한 문제는 nloptr을 설치하는 데 사용 된 해결 방법으로 인해 이 다양한 nloptr 라이브러리의 잘못된 위치를 찾고있었습니다.Github에서에 nloptr의 개발 버전은 내 install.packages를 사용하여 올바른 라이브러리 경로를
  2. 발생한 오류를 설정, install.packages를 호출 할 때 오류
  3. 를 포기하지 않았다 nlopt 라이브러리를 설치하기위한 다른 방법을 사용 lib=.libPaths()[2]를 사용하는 것 R 대신 외부에서 R CMD INSTALL을 사용해보세요

결합 된이 다양한 방법으로 모든 문제가 해결 된 것 같습니다.

2

여기에 몇 가지가 있습니다.

처음으로, 위치는 중요하지 않습니다. R은 .libPaths() 또는 몇 가지 환경 변수 중 하나를 사용하여 원하는대로 설치할 수 있습니다. 자세한 내용은 help(Startup)을 참조하십시오. install.packages()에도 직접 옵션이 있습니다.

두 번째, 목표는 lme4 일 수 있지만 종속 항목을 하나씩 처리해야합니다. nloptr이 문제라면 여기에 대한 수많은 질문을보십시오. 나는 libnlopt 시스템에 대해 nlopt 빌드를 만드는 패치를 제공했다. (최소한 데비안/우분투에서는) 쉽다. 최신 github 소스 nloptr도 함께 제공됩니다.

이 모든 것이 그렇게 어렵다면 Scientific Linux 여야합니까? Linux의 다른 여러 가지 기능에 대해서는 간단히 sudo apt-get install r-cran-lme4이고 패키지 과 모든 종속성은 바이너리에서 설치합니다.

+0

CentOS 7도 사용할 수 있다고 생각합니다. 당신이 제안하는대로 설치가 쉬울까요? –

+1

데비안 기반 시스템의 장점을 언급하면서 근본적으로는 아닙니다. 즉, 일반적인 CRAN 패키지이므로이 모든 작업을 수행 할 수 있습니다. 그러나 그 플랫폼에서의 다리는 당신 것입니다. –

+0

귀하의 조언에 감사드립니다. 그것은 약간의 legwork를 가지고 갔다. 그러나 나는 내가 나의 이슈를 해결할 수 있었다라고 생각한다. 'minqa '로 문제를 해결 한 것으로 보이는'nloptr'의 Github 버전을 설치했습니다. 아래 내 대답을 참조하십시오. –