【R】오프라인 PC에 패키지 도입을 앱으로 해결
오프라인 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")
오프라인 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.Rdynamic_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.Rlibrary(shiny)
runGitHub(repo = "DownloadRPackages", username = "sasakiK")
참고
R 오프라인으로 패키지 설치
인프라 가게를위한 R 언어 : 환경 구축 편
elegant-way-to-check-for-missing-packages-and-install-them
2018.06 되돌아보고 생각해 보면 Docker로 모든 것이 해결하는 이야기라고 생각합니다.
Reference
이 문제에 관하여(【R】오프라인 PC에 패키지 도입을 앱으로 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sasaki_K_sasaki/items/f4472ac8931a89a27dc9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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"))
오프라인 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로 모든 것이 해결하는 이야기라고 생각합니다.
Reference
이 문제에 관하여(【R】오프라인 PC에 패키지 도입을 앱으로 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sasaki_K_sasaki/items/f4472ac8931a89a27dc9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【R】오프라인 PC에 패키지 도입을 앱으로 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sasaki_K_sasaki/items/f4472ac8931a89a27dc9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)