데이터 과학을 위한 전용 컴퓨터를 새로 구매한다고 가정할 때 맥북 노트북으로 장만했다면 다음과 같은 설정을 단계별로 가져가는 것이 필요합니다.
어떤 소프트웨어도 설치된 적이 없는 맥북에 R 데이터 과학 개발환경을 설정하는 방식은 다음과 같다.
bash 혹은 zsh 쉘 중 어떤 쉘을 사용하고 있는지 확인한다.nano), vi 편집기가 쉘에서 기본적으로 활용할 수 있지만, GUI 텍스트 전용 편집기를 준비한다. 아톰(atom), 써브라임 텍스트 3(sublime Text 3) 등 다양한 편집기가 있으니, 저작권과 사용경험담등을 참조하여 본인 텍스트 편집기를 설치한다.gitlab 사례 참조brew install gitGitlab, Github 회원 가입 후 환경설정깡통 맥에 R 데이터 과학 개발환경 구축
먼저 HomeBrew를 설치한다. 명령어는 웹사이트에 나와 있듯이 간단히 다음 명령어를 터미널에 복사형 붙여 넣고 엔터친다.
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"hadley commented on 19 Oct 2018
I think the basic advice is NEVER INSTALL R FROM BREW (unless you really know what you are doing). Github Issues
tidyverse 설치 시 의존성 때문에 libxml2는 설치한다.
순차적으로 R과 RStudio를 다운로드 받아 설치한다.
마지막으로 tidyverse 팩키지를 설치한다.
네이버 D2 Coding 글꼴 웹사이트에서 직접 D2-coding 폰트를 다운로드 받아 압축을 풀어 설치한다. finder에서 압축을 푼 폰트를 더블 클릭하여 설치하면 된다.
최신 자바 버전을 설치하면 R 팩키지중 rJava를 통해 구현된 라이브러리가 수행되지 않는 문제가 있으니 가능하면 낮은 버전 예를 들어 9 등을 설치한다.
openjdk-9.0.4_osx-x64_bin.tar.gz인 경우 압축을 풀어 이동시킨다. 압축을 풀게 되면 jdk-9.0.4.jdk/ 디렉토리 아래 파일과 디렉토리가 풀리게 된다./Library/Java/JavaVirtualMachines/으로 이동시킨다..bash_profile)에 JAVA_HOME 설정한다.which java 명령어로 java 설치를 확인한다. .bash_profile 파일에 JAVA_HOME 경로를 등록시킨다. /Library/Java/JavaVirtualMachines/ 디렉토리 아래 앞서 이동시킨 자바 프로그램이 복사되어 이동되었다.
이를 확인하는 방법은 which java로 확인이 가능하다.
/usr/bin/java
JAVA_HOME 환경변수를 통해 설정된 값은 다음 명령어를 통해 확인한다.
bash-3.2$ $JAVA_HOME/bin/java --version
openjdk 9.0.4
OpenJDK Runtime Environment (build 9.0.4+11)
OpenJDK 64-Bit Server VM (build 9.0.4+11, mixed mode).bash_profile 파일 자바환경 추가
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
export JAVA_HOME;
sudo R CMD javareconf 명령어로 확인sudo R CMD javareconf 명령어로 설정된 값을 다시 환경에 반영시킨다.
JAVA_HOME 설정마지막으로 R에 JAVA_HOME 설정을 Sys.setenv() 명령어로 수행한다.
rJava 설치 4rJava는 R을 자바에 연결시켜주는 인터페이스로 역할을 한다. 오라클이 선마이크로시스템즈를 인수한 이후 정말 다양한 변화가 생겼으며 rJava를 써야 되는 기존 자바로 개발된 프로그램을 데이터 과학에 활용하고자 할 경우 설치에 많은 노력이 요구된다.
rJava가 R에서는 잘 동작하지만, RStudio에서 동작하지 않는 경우 다음 명령어를 실행시킨다.
dyn.load('/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/lib/server/libjvm.dylib')이를 위해서 다음 명령어로 제대로 설치되었는지 확인하고 만약, 본인 컴퓨터에 이런 설정이 되어 있지 않는 경우 자바부터 차근히 rJava를 설치한다.
Xusage.txt
libjsig.dylib
libjvm.dylib
java, gcc 설치java, gcc가 rJava를 설치를 위해서 사전 전제조건으로 필요하다. gcc가 설치되지 않는 경우 brew install gcc 명령어로 쉽게 설치된다.
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin19.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
java의 경우 openjdk도 있고, java8도 있고 몇가지 대안이 있다. 가능하면 openjdk 그리고 버전도 8로 하는 것을 추천한다. 5
brew install openjdk가 되면 얼마나 좋겠는가 현실은 앞서 얘기한 오라클이 선마이크로시스템즈를 인수하기 이전과 이후 자바로 나눠지고 이에 따라 버전도 달라진다. 따라서 다음과 같이 brew tap 이후 brew cask 명령어로 설치한다.
java -version 명령어와 /usr/libexec/java_home 명령어로 자바홈(JAVA_HOME)도 함께 확인한다.
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
jenv 설치자바가 설치되었다면 자바 환경설정을 돕는 jenv 도구를 사용하여 JAVA_HOME환경 변수를 설정한다. brew install jenv 명령어로 jenv를 설치하고 jenv환경을 .bash_profile 파일에 등록한다.
brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profilejenv를 사용해서 brew로 설치한 openjdk8 환경을 등록한다. 전역변수로 등록이 되어 이제 JAVA_HOME을 찾아 자바로 제작된 프로그램을 호출해서 사용할 수 있게 된다.
gcc 컴파일 설정마지막 단계로 install.packages("rJava", type="source")로 rJava를 컴파일시켜 팩키지를 설치하는 경우 다음 과정을 거쳐야 된다. ~ 사용자 홈디렉토리에서 .R 디렉토리를 생성시키고 나서 Makevars라는 텍스트 파일을 생성하고 다음내용을 기술한다.
다음 명령어로 gcc 버전을 확인할 수 있고, 해당 버전을 컴파일러로 사용할 예정이라 해당 버전을 Makevars 파일에 반영시킨다.
9.3.0
다음은 gcc 버전이 9.3.0 이라 이것을 반영한 것이다.
CC=/usr/local/Cellar/gcc/9.3.0/bin/gcc-9
CXX=/usr/local/Cellar/gcc/9.3.0/bin/g++-9
CXX11=/usr/local/Cellar/gcc/9.3.0/bin/g++-9
CXX14=/usr/local/Cellar/gcc/9.3.0/bin/g++-9
cxx17=/usr/local/cellar/gcc/9.3.0/bin/g++-9
cxx1X=/usr/local/cellar/gcc/9.3.0/bin/g++-9
LDFLAGS=-L/usr/local/Cellar/gcc/9.3.0/librJava 컴파일R CMD javareconf 명령어로 R에서 JAVA_HOME을 제대로 인식시키는 작업을 필히 선행시킨다.
그리고 나서 install.packages('rJava', type='source') 명령어로 rJava를 앞서 설정한 gcc 컴파일러를 사용해서 컴파일시킨다.
.jinit()으로 제대로 설치된 rJava 헬로월드를 찍어본다.
library(rJava)
.jinit()
hello_string <- .jnew("java/lang/String", "Hello World")
print(hello_string)[1] "Java-Object{Hello World}"