2014-02-18 3 views
1

일부 배경 : 저는 우리 부서의 서버를 유지 관리하기위한 상당히 초기 시스템 관리자입니다. 서버에는 대개 Ubuntu SE 12.04와 같은 여러 VM이 있으며 일반적으로 프로젝트마다 별도의 VM이 있습니다.공유 관리 서버에서 R을 실행하는 패키지 관리

우리가 사용하는 도구 중 하나는 R 및 RStudio이며 서버 에디션입니다. 모든 사람들이 브라우저를 통해 액세스 할 수 있도록이 작업을 설정했지만 패키지 관리를 처리하는 가장 좋은 방법은 무엇인지 궁금합니다. 이상적으로는 많은 프로젝트와 유스 케이스에서 공통적 인 "공통"패키지가있는 폴더/라이브러리가 하나 있습니다. 내가 sudo에서 유일한 사용자이기 때문에 나는이 라이브러리를 관리 할 것이다. 제 동료는 "개인"R 폴더에 사례별로 패키지를 추가 할 수 있어야합니다.이 폴더는 특정 패키지를 우리의 주 폴더에서 사용할 수없는 경우를 대비해 백업으로 검사됩니다.

제 질문에 몇 가지 부분이 있습니다. - 실제로 이것을 설정할 수 있습니까? - 어떻게 구성합니까? -이 라이브러리를 다른 VM에서 쉽게 사용할 수 있도록 자동화 할 수 있습니까?

내가 파이썬에 관한 비슷한 질문을 가지고 있지만 어쩌면 내가 그것에 대해 새로운 질문을해야한다 ..

+0

안녕하세요. 이것은 [SuperUsers] (http://superuser.com/)로 이동해야합니다. [ask] 페이지를 보면 더 잘 대답 할 수 있습니다.행운을 빌어 요 – Llopis

+1

@Llopis Sysadmin 질문은 일반적으로 서버 오류로 이어지지 만, 이것은 프로그래밍 도구에 관한 것이므로 괜찮습니다. From http://stackoverflow.com/help/on-topic "전문적인 서버, 네트워킹 또는 관련 인프라 관리에 관한 질문은 프로그래밍이나 프로그래밍 도구와 직접 관련되지 않는 한 스택 오버플로에 대한 주제가 아닙니다." –

답변

7

R은 기본적으로 패키지에 대한 여러 libaries을 지원합니다. 라이브러리는 기본적으로 설치된 패키지가있는 폴더입니다. 시스템에 라이브러리로 사용 어떤 경로를 볼 R에

.libPaths() 

를 사용할 수 있습니다. 내 우분투 13.10 시스템에서, "~/R/x86_64에-PC-리눅스 GNU 라이브러리/3.0"사용자가 설치 한 패키지가 배치되는 경우,

  • "는/usr에

    • 개인 라이브러리가있다 apt-get을 통해 설치된 패키지가있는 "/ lib/R/library"와
    • "/ usr/lib/R/site-library"는 모든 사용자가 공유하는 패키지의 시스템 전체 라이브러리입니다.

    추가 라이브러리를 R에 추가 할 수 있지만 사용자의 질문을 이해하고/usr/lib/R/site-library에 패키지를 설치하면 원하는 내용이 될 수 있습니다. R을 root로 실행하고 install.packages() 및 update.packages()를 평소와 같이 호출하여 비교적 쉽게 보관할 수 있습니다. 그러나 R을 루트로 실행하는 것은 보안 상 위험한 것이므로 좋은 생각이 아니므로/usr/lib/R/site-library에 대한 쓰기 권한이있는 별도의 사용자를 만들고 루트 대신 해당 사용자를 사용하는 것이 좋습니다.

    여러 VM에/usr/lib/R/site-library를 마운트하는 경우 해당 위치에 설치된 패키지도 공유해야합니다. 이 질문에 대한 대답이 있습니까?

  • 2

    공통 라이브러리 및 개인 라이브러리 위치를 갖는 것이 완전히 가능합니다.

    각 사용자는 두 개의 환경 변수를 설정해야합니다. R_LIBS은 공용 라이브러리를 가리켜 야하고 R_LIBS_USER은 개인 위치를 가리켜 야합니다. 자세한 내용은 ?.Library을 참조하십시오.

    .libPaths()을 사용하여 사용자의 라이브러리 경로를 확인할 수 있습니다. 아마도 사용자가 개인 라이브러리에 패키지를 설치하기를 원하기 때문에 개인 라이브러리가 .libPaths()의 첫 번째 요소인지 확인하기 위해 약간의 조작이 필요할 수 있습니다.