2016-09-25 1 views
1

다소 다소 일반화 된 버전 this question입니다. R_LIBS_SITE을 어떻게 설정합니까? 가장 최근의 R 3.3.1이있는 CentOS 7.2와 openSUSE 42.1 모두에서 적절한 값을 얻을 수 없습니다.R_LIBS_SITE를 설정하는 방법 또는 패키지 사이트를 공유하는 방법은 무엇입니까?

EPEL에서 R과에 CentOS 7.2 (리눅스 x86_64의)에

내가 얻을 :

$ grep R_LIBS_SITE /usr/lib64/R/etc/Renviron 
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/local/lib/R/library:/usr/lib64/R/library:/usr/share/R/library'} 

는 분명히,이 설정이 올바르게 때 적용되지 않습니다 :

R version 3.3.1 (2016-06-21) -- "Bug in Your Hair" 
... 
Platform: x86_64-redhat-linux-gnu (64-bit) 
... 
> .libPaths() 
[1] "/usr/lib64/R/library" "/usr/share/R/library" 
> .Library 
[1] "/usr/lib64/R/library" 
> .Library.site 
[1] "/usr/lib64/R/library" "/usr/share/R/library" 
> R.home(component = "home") 
[1] "/usr/lib64/R" 

그러나, 각각의 Renviron는 다음과 같은 포함 나는 R을 시작한다. 그러나 동일한 파일의 R_LIBS_USER에서 예를 들어 변경 사항이 적용된다.

R_LIBS_SITE='/usr/local/lib/R/site-library' 

로 설정하면 R_LIBS_SITE 다른 곳 덮어 쓸 수 있습니다 어디 표시되지 않습니다

> .Library.site 
character(0) 

생산 완전히 때문에 또한, R_LIBS_SITE는 무시되지 않습니다. 내가 오픈 수세와 비슷한 동작을 재현 할 수

R --no-environ --no-site-file --no-init-file 

로를 시작할 때 나는 R의 같은 동작을 얻을.

또는 모든 사용자에게 공유되는 패키지 사이트를 설정하는 또 다른 권장 방법이 있습니까?

답변

2

가능한 문제는 디렉터리 중 일부가 존재하지 않는다는 것입니다. 존재하지 않는 디렉토리는 목록에서 자동으로 제거됩니다. 그래서, 당신은

R_LIBS_SITE='/usr/local/lib/R/site-library'

을 설정하고 디렉토리가 존재하지 않는 경우, .Library.site는 (귀하의 예제처럼) 빈 문자열입니다. 귀하의 예에서 나온 결과에 따라 /usr/local/lib/R/site-library/usr/local/lib/R/library 디렉토리가 존재하지 않으면 출력 파일에있는 Renviron 파일의 R_LIBS_SITE에 나와있는 목록에서 자동으로 제거됩니다.

관련 문제