1. devtools 가 필요한 이유
devtools는 R 배포자에게는 최고의 개발 환경이다. 이것은 배포자가 Cran 사이트나, Git hub에 Package 형태로 만들어서, 올려서 사용하는 것이기 때문에 문서를 작성 해서 소스를 오픈 하는 것이다. 즉 누구나 원하면 본인이 사용하기 편하게 소스 코드를 만들어서, 언제든지 오픈 할 수 있다. 그런데, roxygen 를 사용해서 문서를 생성하는 방식은 한글 지원에 문제가 있다. 소스코드를 만들어 영문으로 퍼블리싱 해야 한다는 번거로움이 있다.2. devtoos 설치 준비 Ubuntu 종속성을 위한 위한 패키지 설치
앞 서서 설명한 devtools에 WSL1은 R이 3.6까지만 지원되고, WSL2는 WSL1보다는 조금 안정적인 느낌이 있다.
devtool하고 rjava 만 설치하면, R에서 설치하기 어려운 패키지를 전부 설치 하는 것인데, 우선 devtool 부터 설치를 할 것이다. devtool은 R에서 몇가지 없는 개발 툴 인데, cran에서 다운로드가 안될때, 그리고, 개인 개발 패키지 즉, cran 에 올리않고 사용하는 패키지가 있는데, 그것을 다운로드 받을 려면 devtool에서 다운 받아야 한다. 즉 devtool로 Package를 만들수 있고 배포 할 수 있다는 것이다.
R에서 devtool을 설치 하려면 우분투 터미널에서 종속성을 설치 하여야 한다. 지난 18.04버전에서 한것을 20.04로 하려고 한다. devtools 방법을 찾는데, 한참이나 헤메 었는데, 100% 완벽 하지는 않지만, 아래와 같이 하면, devtools 를 설치 하면 된다.
$ sudo apt-get install -y libgit2-dev
$ sudo apt-get install -y libcurl4-openssl-dev libssl-dev
$ sudo apt-get install -y zlib1g-dev libssh2-1-dev libpq-dev libxml2-dev
$ sudo apt-get install libhdf5-serial-dev
$ sudo apt-get install libxml2-dev
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install -y libcurl4-openssl-dev libssl-dev
$ sudo apt-get install -y zlib1g-dev libssh2-1-dev libpq-dev libxml2-dev
$ sudo apt-get install libhdf5-serial-dev
$ sudo apt-get install libxml2-dev
$ sudo apt-get update
$ sudo apt-get upgrade
3. Devtools R에서 패키지 설치
우분투에서 아래와 같은 명령어를 실행 하여 root R을 접속 하고, 여전히 의존성과 library 폴더 lock이 걸리는 것이 있어 아래와 같이 설치 한다.
$ sudo -i R
> install.packages("devtools", dependencies=TRUE, INSTALL_opts = c('--no-lock'))
Devtool은 Rstudio에서 설치 할 것이 아니라, R Base에 접속해서 설치해야 한다. 즉 root계정으로 설치 하고 다른 계정에서 전부 쓰는 Base 패키지로 보면 될 것 같다.
여러개의 툴을 설치 하므로 시간이 많이 걸린다. 일부 설치 못하는 4개의 패키지가 있는데, 이건은 폰트 및 디자인, 그리고 웹사이트 제작과 관련된 패키지라, 분석이 목적인 본 블로그에서는 그냥 무시하고 지나간다.
Warning messages:
1: In install.packages("devtools", dependencies = TRUE, INSTALL_opts = c("--no-lock")) :
installation of package ‘systemfonts’ had non-zero exit status
2: In install.packages("devtools", dependencies = TRUE, INSTALL_opts = c("--no-lock")) :
installation of package ‘textshaping’ had non-zero exit status
3: In install.packages("devtools", dependencies = TRUE, INSTALL_opts = c("--no-lock")) :
installation of package ‘ragg’ had non-zero exit status
4: In install.packages("devtools", dependencies = TRUE, INSTALL_opts = c("--no-lock")) :
installation of package ‘pkgdown’ had non-zero exit status
thank you very much!
답글삭제