소개
rv는 A2-Ai가 개발한 R 패키지 관리 도구로, Rust로 작성되어 선언적 구성 파일을 통해 프로젝트에 필요한 R 버전과 패키지를 재현 가능하고 빠르게 설치·관리할 수 있게 합니다. 구성 파일에 지정된 상태로 패키지 라이브러리를 동기화하여 동일한 개발 환경을 팀원 간 손쉽게 공유할 수 있습니다.
상세정보
선언적 구성 기반 패키지 관리
project.toml 파일에 r_version, repositories, dependencies 등을 명시하여 프로젝트 상태를 선언적으로 정의합니다. 이를 통해 팀 내 모든 구성원이 동일한 패키지 버전과 설정을 사용하는 재현 가능한 환경을 구현할 수 있습니다.
라이브러리 동기화
rv sync 명령은 구성 파일에 지정된 패키지와 그 의존성을 분석하여, 현재 라이브러리와 잠금 파일(Lock file)을 구성 파일의 상태로 동기화합니다. 설정된 모든 패키지를 한 번에 설치하거나 업데이트할 수 있습니다.
변경 사항 미리보기
rv plan 명령을 사용하면 실제 설치나 삭제가 실행되기 전에 어떤 패키지가 추가·제거·업데이트될지 미리 확인할 수 있습니다. 이를 통해 예기치 않은 변경을 사전에 방지할 수 있습니다.
유연한 구성 옵션
패키지 단위로 install_suggestions와 같은 세부 옵션을 설정할 수 있습니다. 또한 저장소(Repository) 간 의존성 충돌이나 버전 호환성 문제를 해결하기 위한 고급 설정도 지원합니다.
설치 방법
- Windows (winget): 터미널에서
winget install --id A2-Ai.rv --exact명령을 실행하여 설치할 수 있습니다. - macOS/Linux: 공식 문서 사이트 및 저장소에서 제공하는 스크립트를 사용하여 설치할 수 있습니다. 예:
curl -sSL https://raw.githubusercontent.com/A2-ai/rv/refs/heads/main/scripts/install.sh | bash
기본 사용법
설치 후 rv --version으로 설치 상태를 확인할 수 있습니다. 기본적인 사용 흐름은 먼저 구성 파일을 작성한 뒤 해당 디렉터리에서 명령을 실행하는 것입니다.
- 구성 파일 작성: 프로젝트 루트에 TOML 형식의 구성 파일을 만듭니다. 파일에는 프로젝트 이름, 사용할 R 버전, 패키지 저장소, 설치할 의존성 목록이 포함됩니다.
- 환경 동기화:
rv sync명령을 실행하여 구성 파일의 설정대로 실제 라이브러리 환경을 구축합니다. - 변경 확인:
rv plan명령으로 동기화 전후의 차이를 검토할 수 있습니다.
구성 파일 예시
다음은 dplyr과 ggplot2 패키지를 설치하되, ggplot2의 제안 패키지까지 포함하도록 설정하는 기본 구성 파일 예시입니다.
[project]
name = "my first rv project"
r_version = "4.4"
repositories = [
{ alias = "PPM", url = "https://packagemanager.posit.co/cran/latest" },
]
dependencies = [
"dplyr",
{ name = "ggplot2", install_suggestions = true}
]활용 예시
- 팀 협업 환경 표준화: 구성 파일을 버전 관리 시스템(Git 등)에 저장하여 팀원 모두가 동일한 R 버전과 패키지 설정을 유지할 수 있습니다.
- 프로젝트 의존성 검증: 동기화 전 rv plan 명령을 통해 현재 환경과 목표 환경의 차이를 사전에 검토하고, 불필요한 패키지 변경을 최소화할 수 있습니다.
- 제안 패키지 관리: 특정 패키지(예: ggplot2)의 제안 패키지(Suggested packages) 설치 여부를 구성 파일에서 명확히 제어할 수 있습니다.
제한 및 라이선스
rv는 오픈 소스 프로젝트로, MIT 라이선스 하에 배포됩니다. 프로젝트에서 제공되는 모든 바이너리 아티팩트는 Sigstore를 사용하여 서명되며, GitHub CLI의 gh attestation verify --owner A2-ai 명령으로 릴리스 서명을 검증할 수 있습니다.
시스템 요구사항
Rust를 설치해야 하며, 개발에 참여하려면 선택적으로 Just 빌드 도구를 사용할 수 있습니다. 스냅샷 테스트는 R 4.5 버전을 기준으로 동작합니다.


