[R] R 패키지 오프라인 설치를 위한 방법(on CentOS) - 2. miniCRAN 이용하기

해당 포스트는 R 패키지를 인터넷이 안되는 오프라인 환경에서 설치하는 방법을 소개하는 글입니다.


Lists
1탄 : 의존성 패키지들 다운받는 사용자 함수 이용하기
2탄 : miniCRAN 이용하기


1. INTRO

일반적으로 공공 기관이나 회사와 같이 보안이 강화된 곳은 R패키지를 제공하는

CRAN 사이트의 접근이 막혀있는 경우

가 많습니다. 이런 경우 인터넷이 되는 곳에서 설치하려는 패키지들을 다운받아 옮겨야 하는데, 의존성 패키지가 많은 경우 패키지들을 하나씩 확인하며 받기에는 너무 많은 노력이 필요합니다.

아래에서는 이러한 노력을 줄여주기 위해 많이 사용되는 2가지 방법을 소개하고자 합니다.

전편에 이어 이번편에서는 miniCRAN을 이용하여 해결하는 방법을 소개합니다.

▲ R 패키지 의존성(dependencies)

2. 방법2: miniCRAN 패키지 활용

두번째 방법은 miniCRAN패키지를 사용하는 것입니다. 해당 패키지는

R 공식 CRAN 사이트와 유사한 환경을 개인 PC에 구성할 수 있도록 지원

해 주며, 원하는 패키지들을 선택하여 환경을 구축하게 되면 이후 별도의 작업없이 명령어만으로 패키지를 설치할 수 있습니다.

일반적으로 기업에서는 분석 서버를 외부망과 분리된 공간에 두기 때문에 폐쇄망으로 넣기 전

인터넷 연결이 가능한 세팅기간 동안 miniCRAN으로 가상 Repository를 미리 만드시는 걸 추천

드립니다.

1. miniCRAN 환경 구성

위에서 설명한 바와 같이 miniCRAN 패키지를 활용하면 효율적인 R 패키지 설치 및 분석 환경 운영이 가능합니다. 아래 코드를 차례대로 실행하게 되면 내가 지정한 폴더 download_dir폴더에 /src/contrib/폴더가 생성되고 그 안에 내가 선택한 패키지를 설치할 수 있도록 의존성 패키지들이 모두 다운로드 됩니다.

# install.packages("miniCRAN")
library(miniCRAN)

# 다운로드 폴더 설정
download_dir <- "d:/miniCRAN" 

# 패키지 리스트 생성
pkgs <- c("robustfa","ggplot2","GPArotation","gplots","RColorBrewer","semPlot","MASS","xgboost","caret","glmnet","rpart","nnet","zoo","ica")

pkgList <- pkgDep(pkgs, type = "source", suggests = FALSE) # For CentOS
# pkgList <- pkgDep(pkgs, type = "win.binary", suggests = FALSE) # For Windows
pkgList

# 패키지 다운로드
makeRepo(pkgList, path=download_dir, type = "source") # For CentOS
# makeRepo(pkgList, path=download_dir, type = "win.binary") # For Windows

▲ 패키지 다운로드 리스트
▲ miniCRAN 패키지 다운로드

2. 파일 업로드

분석 서버에 해당 miniCRAN 폴더를 업로드하여 사용하려면, 아래 구조에 맞춰 폴더를 생성하고 업로드해야 합니다.

  • 로컬PC : d:/miniCRAN
  • 분석 서버 : /userId/miniCRAN

반드시 위 폴더 구조를 그대로 가져가야 합니다.

  • 패키지들의 위치 : /userId/miniCRAN/src/contrib/

3. 패키지 인스톨

위 과정을 통해 miniCRAN으로 패키지를 받고 서버 내 환경을 구축하셨다면 이제 R에서 패키지를 사용하시면 됩니다. R에서 패키지를 설치할 때에는 repostype를 옵션을 아래와 같이 지정하여 사용해야 합니다.

# miniCRAN 경로 설정
minicran_path <- "/userId/miniCRAN"

# robustfa 패키지 설치 예시
install.packages("robustfa", 
                 repos=paste0("file://", minicran_path), 
                 type="source")

만약 내부적으로 miniCRAN 운영을 고려하고 계시다면 아래 사이트에서 좀 더 많은 정보를 얻으실 수 있습니다.

3. 마무리

이번 포스트에서는 R 패키지를 인터넷이 안되는 오프라인 환경(on CentOS)에서 설치하는 방법

miniCRAN을 사용하는 방법

을 설명하였습니다. 위에서 소개드린 miniCRNA은 분석 서버가 폐쇄망에 있거나 사내 교육을 위해 동일한 버전의 패키지를 사용해야 하는 경우에 유용하게 사용될 수 있습니다. 처음 구축은 어려울 수 있으나 길게보면 1탄 에서 설명했던 방법보다 간편하고 효율적으로 사용할 수 있으니 연구해 보시면 좋을 것 같습니다.

4. 관련 링크

[1] Using miniCRAN to create a local CRAN repository
[2] R 패키지 오프라인 설치를 위한 방법(on CentOS) - 1. 의존성 패키지 한번에 받기
[3] R 패키지 오프라인 설치를 위한 방법(on CentOS) - 2. miniCRAN 이용하기