【R】오프라인 PC에 패키지 도입을 앱으로 해결

11699 단어 RRStudioShiny

오프라인 PC에 패키지를 도입하는 것은 조금 번거로운


  • 다음 몇 줄 필요

  • 온라인 PCconsole.R
    install.packages("miniCRAN")
    library(miniCRAN)
    
    # 必要なパッケージをリスト
    pkglist <- pkgDep("packagename")
    
    # パッケージを特定のディレクトリにダウンロード
    ## win ---
    download.packages(pkglist, destdir = "path_to_dir", type = "win.binary")
    
    ## mac ---
    download.packages(pkglist, destdir = "path_to_dir", type = "source")
    
    
  • 대상 PC에 설치하려면 다음 코드도 필요합니다

  • 오프라인 PCconsole.R
    
    # win
    install.packages( c("path_to_downloaded_file/packagename.zip",
                        "path_to_downloaded_file/packagename2.zip",
               "path_to_downloaded_file/packagename3.zip",
                        "path_to_downloaded_file/packagename4.zip",
                        "..."), 
        repos = NULL, conrib.url="win.binary", type = "win.binary")
    
    # mac
    install.packages( c("path_to_downloaded_file/packagename.tar.gz",
                        "path_to_downloaded_file/packagename2.tar.gz",
                        "path_to_downloaded_file/packagename3.tar.gz",
                        "path_to_downloaded_file/packagename4.tar.gz",
                        "..."), 
        repos = NULL, type = 'source')
    
  • 조금 번거로운
  • "path_to_downloaded_file/packagename...." 의 개소가 특히 귀찮다고 개인적으로 생각하고 있었습니다.
    (다운로드했을 때의 콘솔로부터 구형으로 해당 부분 잘라내는 등)

    앱으로 자동화





    입력: 필요한 패키지, 패키지를 다운로드할 폴더에 path
    출력: 오프라인 PC에서 설치하는 데 필요한 코드

    사용법



    0. 앱 종속 패키지 도입



    온라인 PCconsole.R
    dynamic_require <- function(package){
      if(eval(parse(text=paste("require(",package,")"))))return(TRUE)
    
      install.packages(package)
      return(eval(parse(text=paste("require(",package,")"))))
    }
    
    dynamic_require(c("dplyr","shiny","rintrojs","miniCRAN","shinymaterial"))
    
    

    1. 앱 시작(Open in Browser 권장)





    1.1 가이드 클릭




    rintrojs가 소개합니다 ↓


    2. 패키지 입력 (더블 쿼트, 공백 없음)





    3. 오프라인 PC OS 선택





    4. 패키지 파일의 다운로드 대상 지정





    5. 다운로드 실행




    클릭하면 다운로드 시작 및 종료 알림





    지정된 폴더에 패키지가 다운로드됩니다.

    설치용 코드 가져오기




    클릭하면 코드가 표시됩니다.


    … (약)


    이것을 복사하고 스크립트로 저장하면,
    오프라인 PC로 패키지를 도입할 때 조금만 작업이 편해진다고 생각합니다!

    요약



    오프라인 PC에의 패키지 도입을 지원할 수 있으면(자) 생각해 만들었습니다.
    공부가 되었습니다만, 만들어 끝난 후에 인프라 가게를위한 R 언어 : 환경 구축 편 에 있는 이하의 기술을 보고, 그쪽이 편하다고 생각했습니다.

    공식적인 방법인지는 모르겠지만, 빠른 방법으로는 ...
    Windows 버전에 패키지를 설치하면 R 설치 디렉토리 아래의 라이브러리 디렉토리에 패키지 관련 파일이 확장됩니다.
    그래서, 웹에 접속할 수 있는 머신상에서 필요한 패키지를 한번에 인스톨 해 줘, library 디렉토리 이하를 통째로 zip으로 굳혀 대상 머신에 가지고 가서, 디렉토리마다 치환해 줍니다.
    일단 그것으로 잘 작동합니다.

    앱 소스 코드는 github에 있습니다.
    그렇다면 다운로드하여 사용해보십시오.

    실제 패키지 DL은 할 수 없습니다만, 앱의 기동만이라면 이하의 코드로 할 수 있다고 생각합니다,
    이미지로 참고하십시오.

    console.R
    library(shiny)
    runGitHub(repo = "DownloadRPackages", username = "sasakiK")
    

    참고



    R 오프라인으로 패키지 설치
    인프라 가게를위한 R 언어 : 환경 구축 편
    elegant-way-to-check-for-missing-packages-and-install-them

    2018.06 되돌아보고 생각해 보면 Docker로 모든 것이 해결하는 이야기라고 생각합니다.

    좋은 웹페이지 즐겨찾기