2012-12-23 4 views
0

Rcpp을 Linux에 설치 우분투 12.04, R2.15.2 NB R 및 rcpp가 어제 설치되었습니다. 그래서 가장 최근 버전을 기대하지만, Rcpp은 구 버전으로 설치됩니다! Rcpp가 제대로 설치되지 않았습니다. R2.15.2

> old.packages() 

    Package LibPath     Installed Built ReposVer 
Rcpp "Rcpp" "/usr/lib/R/site-library" "0.9.9" "2.14.1" "0.10.2" 
rgl "rgl" "/usr/lib/R/site-library" "0.92.798" "2.12.1" "0.92.894" 
    Repository         
Rcpp "http://www.stats.bris.ac.uk/R/src/contrib" 
rgl "http://www.stats.bris.ac.uk/R/src/contrib" 
> update.packages("Rcpp") 

마지막 줄은 전혀 패키지 Rcpp를 업데이트하지 않았습니다에서 볼 수 있듯이

; 이 문제의 원인은 무엇이며 어떻게 해결해야합니까?

NB 두 개의 다른 저장소에서 다시 설치하려고했는데, 둘 다 rcpp의 최신 버전 0.10.2를 가지고 있다고 주장했습니다.

감사

소대장

당신은 단순히 오해

답변

4

.

당신이 가지고있는 Rcpp는 우분투이고 apt-get 등을 통해 설치되었습니다. 이 버전은 배포판이 고정되면 고정됩니다. 이것은 gcc, emacs, ...가 가장 최신 버전 인 이 현재 사용 가능하지 않은 것과 비슷합니다.하지만 배포판을 만들 때 사용 된 버전입니다. 그리고 제쳐두고 우분투 버전은 이제 12.10이 나오기 때문에 하나의 릴리즈로 데이트되었습니다 ...

그래서 질문 제목이 잘못되었습니다. 가지고있는 버전은 우분투 12.04에 포함 된 버전으로 정확하게 으로 설치됩니다. 이제 의미가 있습니까?

이제 CRAN에서 install.packages()을 통해 Rcpp를 설치하면 rgl의 현재 버전 인 idem을 얻을 수 있습니다.

(그리고 PPA가 모두 같은 사전 빌드 뎁 패키지를 가질 가능성이 런치 패드에도있다.)

마지막으로, 그리고 앞서 설명한 경로 /usr/lib/R/site-library는 같은 뎁 파일을 어디에 설치 r-cran-* 패키지입니다 /usr/local/lib/R/site-library은 R 자체에서 설치 한 로컬 용입니다. 분할로 인해 이전 경로 (예 : /usr/lib/R/site-library)에서 구동되는 old.packages()의 출력은 배포본 (여기서는 Ubuntu)에 의해 관리되기 때문에 뒤에 바인딩됩니다. 해당 구성 요소의 안정성을 위해 배포판을 선택했으며 CRAN 패키지를 사용하여 무료로 추가 할 수 있습니다 (/usr/local/lib/R/site-library). 그리고 그것은 확실히 특징입니다. 내 우분투 상자에서

증인이 ​​:

R> old.packages(lib.loc="/usr/local/lib/R/site-library/") 
NULL 
R> 
+0

나는 (또한 내 이전 게시물 이전 install.packages()를 실행하고 (sudo는 R과) 이후 old.packages을 확인하기 전에 R을 다시 시작했다) . 이제 lib.loc "".. "을 확인했는데 두 버전의 rcpp가 모두 설치되어있는 것처럼 보이지만 명령 라이브러리 (Rcpp)가 이전 라이브러리를 선택합니다. 어떻게 새 버전을 가리 킵니까? –

+0

방금 ​​시도한 라이브러리 (Rcpp, lib.loc = "/ usr/local/lib/R/site-library /") 및 C++ 코드가 올바르게 작동합니다. –

+0

'.libPaths()'는 무엇을 반환할까요? 세 번째 항목이 있어야합니다. 그 중 하나가 첫 번째 항목이므로 기본값은/usr/local이 우선합니다. .libPaths '$ R_HOME/etc/Renviron'에있는 파일에 대한 소프트 링크 인'/ etc/R/Renvinron'을 통해() 실수로 덮어 썼습니까? –

관련 문제