2012-08-27 2 views
16

사용자 지정 R 패키지 리포지토리를 만들고 CRAN 보관 구조를 복제하여 이전 버전의 패키지를 src/contrib/Archive/packageName/ 디렉터리에 저장하려고합니다. install_version 함수를 devtools (소스 here)에 사용하고 싶습니다. 그러나이 함수는 모든 패키지 버전을 src/contrib/에 두는 대신 CRAN과 유사한 아카이브 구조를 사용하는 것에 의존합니다.R 패키지 저장소 관리 도구가 있습니까?

이 디렉토리 구조 및 기타 관련 작업 (예 : Archive.rds 파일 업데이트)을 쉽게 만들 수있는 R 패키지 저장소 관리 도구가 있습니까?

내가 내 로컬 Mac에서와 같은 리눅스 서버에 같은 install.packages() 또는 install_version() 코드를 사용할 수 있도록 관리 도구 저장소 측면에서 패키지 type 로직을 처리하는 경우도 좋을 것이다 (예를 나는 필요 없어 Mac에 로컬로 설치하는 경우 type="both" 또는 type="source"을 사용하십시오.

+3

R-devel 메일 링리스트에서이 질문을 할 수 있습니다 (아직하지 않았다면). 가장 잘 압니다. 또는 CRAN 관리자, 즉 Kurt에서 직접 알 수 있습니다. –

+0

감사합니다. 나는 곧 답변을 게시 할 것이다. –

답변

4

짧은 대답 : 실용적인 것은 아닙니다.

긴 대답 : 하나가 자신의 repo를 관리하는 데 사용할 수있는 도구의 몇 가지가 있습니다 만, 일관성 기성 생태계는 아직 없다.

CRAN 관리자는 CRAN 저장소를 관리하기 위해 많은 수의 스크립트를 보관하지만 패키지 인덱스를 업데이트하거나 패키지 검사를 실행하거나 디렉토리 구조를 관리하는 데 필요한 부분이 무엇인지 명확하지 않습니다.

tools::write_PACKAGES 기능을 사용하여 패키지 색인을 업데이트 할 수 있지만 패키지를 추가하거나 업데이트하거나 저장소에서 제거 할 때마다 업데이트해야합니다.

M.eik Michalke가, 설치 등을 자동으로 해당 저장소를 갱신 할 수있는 능력을 가지고 roxyPackagepackage을 만든 개발자는 최근 아카이브 구조를 가지고 할 수있는 기능을 추가했습니다는 archive_structure과 크랑의 모방 기능. 단점은 패키지가 CRAN에 없으므로 devtools과 통합되면 더 나을 것입니다. 또한 신품이며 아직 널리 사용되지 않습니다.

마지막으로, 주어진 저장소를 감시하고 파일이 변경되면 패키지 색인을 업데이트하는 작은 Ruby script을 만들었습니다. 그러나 이것은 특정 조직에서 작동하도록 만들어 졌으므로 외부 사용을 위해 리팩토링해야합니다. 누구나 관심이 있다면 좀 더 일반적으로 만들 수 있습니다.