2017년 2월 7일 화요일

Linux on POWER (ppc64le)에 R 서버 및 R-Studio 설치하기


Revolution R이 MS에게 매각되면서 MS-R이 되었습니다만, 여전히 open source로서 source code는 공개되고 있습니다.   MS-R과 R-Studio를 Ubuntu 16.04 LTS ppc64le 환경에서 build한 뒤, 동일한 OS의 다른 POWER 서버로 그 binary들을 가져가서 제대로 구동되는지 보겠습니다.

다음과 같이 필요한 기본 OS fileset을 설치합니다.  (일부는 필요없는 것도 있겠으나... 일단 그냥 다 설치합시다.)

u0017496@sys-85548:~$ sudo apt-get install gfortran gfortran-5 libgfortran-5-dev openssl libcurl4-openssl-dev libglobus-openssl-module-dev libboost-dev libboost-regex1.58-dev libboost-filesystem1.58-dev libboost-math1.58-dev libboost-tools-dev libboost-date-time1.58-dev libboost-iostreams1.58-dev libboost-program-options1.58-dev libboost-signals1.58-dev libboost-thread1.58-dev libboost-chrono1.58-dev libpam0g-dev libr3-0 xorg-dev xserver-xorg-dev nautilus ubuntu-gnome-desktop r-base r-base-dev r-base-core r-base-html cmake openssl libcurl4-openssl-dev libglobus-openssl-module-dev libboost-dev libboost-regex1.58-dev libboost-filesystem1.58-dev libboost-math1.58-dev libboost-tools-dev libboost-date-time1.58-dev libboost-iostreams1.58-dev libboost-program-options1.58-dev libboost-signals1.58-dev libboost-thread1.58-dev libboost-chrono1.58-dev libpam0g-dev libr3-0 xorg-dev xserver-xorg-dev nautilus ubuntu-gnome-desktop uuid-dev libuuid1 ant libasio-dev cmake automake autoconf libpango1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangomm-1.4-1v5 libpangoxft-1.0-0 gir1.2-coglpango-1.0  gir1.2-pango-1.0 libcogl-pango20


먼저, MS-R 서버를 build 합니다.  Github에서 source code를 download 받습니다.

u0017496@sys-85548:~$ wget https://github.com/Microsoft/microsoft-r-open/archive/MRO-3.3.2.tar.gz

u0017496@sys-85548:~$ tar -zxvf MRO-3.3.2.tar.gz

u0017496@sys-85548:~$ cd microsoft-r-open-MRO-3.3.2/source

u0017496@sys-85548:~/microsoft-r-open-MRO-3.3.2/source$ ./configure --enable-R-shlib --without-recommended-packages ; make ; sudo make install


이렇게 build되고 install된 R 서버는 /usr/local/lib/R directory에 설치됩니다.  이제 그 directory 전체를 tar로 말도록 하겠습니다.

u0017496@sys-85548:~/microsoft-r-open-MRO-3.3.2/source$ cd /usr/local/lib/

u0017496@sys-85548:/usr/local/lib$ sudo tar -zcvf R.tgz R

u0017496@sys-85548:/usr/local/lib$ ls -l R.tgz
-rw-r--r-- 1 root root 27970104 Feb  6 03:59 R.tgz


이 R.tgz 파일은 조금 뒤에 다른 서버로 옮겨가서 설치하겠습니다.

이제 R-Studio를 build 합니다.

u0017496@sys-85548:~$ wget https://github.com/rstudio/rstudio/archive/master.zip

u0017496@sys-85548:~$ unzip master.zip

u0017496@sys-85548:~$ cd rstudio-master

u0017496@sys-85548:~/rstudio-master$ ./package/linux/install-dependencies

u0017496@sys-85548:~/rstudio-master$ cd dependencies/common/

u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-cef
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-boost
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-common
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-gwt
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-libclang
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-mathjax
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-packages
u0017496@sys-85548:~/rstudio-master/dependencies/common$ ./install-pandoc

u0017496@sys-85548:~/rstudio-master/dependencies/common$ cd ../..
u0017496@sys-85548:~/rstudio-master$ mkdir build
u0017496@sys-85548:~/rstudio-master$ cd build


u0017496@sys-85548:~/rstudio-master/build$ cmake .. -DRSTUDIO_TARGET=Server -DCMAKE_BUILD_TYPE=Release

u0017496@sys-85548:~/rstudio-master/build$ make ; sudo make install


이렇게 build된 R-Studio는 /usr/local/lib/rstudio directory에 설치됩니다.  역시 이 directory 전체를 tar로 말겠습니다.

u0017496@sys-85548:~/rstudio-master/build$ cd /usr/local/lib

u0017496@sys-85548:/usr/local/lib$ sudo tar -zcvf ./rstudio-server.tgz rstudio-server

u0017496@sys-85548:/usr/local/lib$ ls -l rstudio-server.tgz
-rw-r--r-- 1 root root 61493341 Feb  6 03:27 rstudio-server.tgz


* 이 파일들을 MS-R과 R-Studio를 설치해야 하는 서버로 옮긴 뒤 거기서 다음과 같이 tgz를 untar 합니다.   단, 그 전에, 다음과 같이 위 build 서버에서 apt-get install 명령으로 설치했던 모든 기본 fileset은 이 target 서버에서도 미리 apt-get install 명령으로 설치해두어야 합니다.


u0017496@sys-85549:~$ sudo apt-get install gfortran gfortran-5 libgfortran-5-dev openssl libcurl4-openssl-dev libglobus-openssl-module-dev libboost-dev libboost-regex1.58-dev libboost-filesystem1.58-dev libboost-math1.58-dev libboost-tools-dev libboost-date-time1.58-dev libboost-iostreams1.58-dev libboost-program-options1.58-dev libboost-signals1.58-dev libboost-thread1.58-dev libboost-chrono1.58-dev libpam0g-dev libr3-0 xorg-dev xserver-xorg-dev nautilus ubuntu-gnome-desktop r-base r-base-dev r-base-core r-base-html cmake openssl libcurl4-openssl-dev libglobus-openssl-module-dev libboost-dev libboost-regex1.58-dev libboost-filesystem1.58-dev libboost-math1.58-dev libboost-tools-dev libboost-date-time1.58-dev libboost-iostreams1.58-dev libboost-program-options1.58-dev libboost-signals1.58-dev libboost-thread1.58-dev libboost-chrono1.58-dev libpam0g-dev libr3-0 xorg-dev xserver-xorg-dev nautilus ubuntu-gnome-desktop uuid-dev libuuid1 ant libasio-dev cmake automake autoconf libpango1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangomm-1.4-1v5 libpangoxft-1.0-0 gir1.2-coglpango-1.0  gir1.2-pango-1.0 libcogl-pango20

u0017496@sys-85549:~$ cd /usr/local/lib


이 서버의 /usr/local/lib directory에 아까의 build 서버에서 말아 놓았던 tar file들을 가져와 풀어놓습니다.  먼저 R 서버부터 제대로 작동하는지 확인합니다.

u0017496@sys-85549:/usr/local/lib$ ls -ltr
total 60068
drwxrwsr-x 3 root staff     4096 Jan 13 09:17 python3.5
drwxrwsr-x 4 root staff     4096 Feb  6 01:44 python2.7
drwxrwsr-x 3 root staff     4096 Feb  6 01:50 R
-rw-r--r-- 1 root root  61493341 Feb  6 03:34 rstudio-server.tgz
-rw-r--r-- 1 root root  27970104 Feb  6 04:02 R.tgz

u0017496@sys-85549:/usr/local/lib$ sudo tar -zxvf R.tgz


Windows가 설치된 PC client에서, 자신이 어떤 IP로 접속하고 있는지 who 명령으로 확인한 뒤, 그 주소로 DISPLAY 환경변수를 export 해줍니다.

u0017496@sys-85549:/usr/local/lib$ who
u0017496 pts/0        Feb  6 19:18 (172.29.97.114)

u0017496@sys-85549:/usr/local/lib$ export DISPLAY=172.29.97.114:0



이제 172.29.97.114 주소를 가진 client PC에서 Xmanager를 passive mode로 구동시킨 뒤 아래처럼 R에서 그래프를 그리면 그 그래픽 화면이 PC 창에 띄워집니다.

u0017496@sys-85549:/usr/local/lib$ /usr/local/lib/R/bin/R
> plot(BOD, type = 'l')





다음은 R-Studio입니다.  역시 tar를 풀어주고, 다음과 같이 rstudio-server라는 이름의 script를 /etc/init.d에 등록해줍니다.

u0017496@sys-85549:/usr/local/lib$ sudo tar -zxvf rstudio-server.tgz

u0017496@sys-85549:/usr/local/lib$ sudo cp rstudio-server/extras/init.d/debian/rstudio-server /etc/init.d/rstudio-server

u0017496@sys-85549:/usr/local/lib$ sudo update-rc.d rstudio-server defaults

u0017496@sys-85549:/usr/local/lib$ sudo ln -f -s /usr/local/lib/rstudio-server/bin/rstudio-server /usr/sbin/rstudio-server


rstudio-server를 systemctl 명령으로 start 해준 뒤, status를 확인합니다.

u0017496@sys-85549:/usr/local/lib$ sudo systemctl start rstudio-server.service

u0017496@sys-85549:/usr/local/lib$ sudo systemctl status rstudio-server.service
â— rstudio-server.service - LSB: RStudio Server
   Loaded: loaded (/etc/init.d/rstudio-server; bad; vendor preset: enabled)
   Active: active (running) since Mon 2017-02-06 19:37:08 EST; 25s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 19387 ExecStart=/etc/init.d/rstudio-server start (code=exited, status=0/SUCCESS)
    Tasks: 3
   Memory: 7.5M
      CPU: 447ms
   CGroup: /system.slice/rstudio-server.service
           â””─19395 /usr/local/lib/rstudio-server/bin/rserver

Feb 06 19:37:08 sys-85549 systemd[1]: Starting LSB: RStudio Server...
Feb 06 19:37:08 sys-85549 systemd[1]: Started LSB: RStudio Server.

이제 http://서버주소:8787 로 web browser를 통해 접근할 수 있습니다.   user id와 passwd는 OS user의 것을 그대로 쓰면 됩니다.





이 file들은 아래 link에 공유해놓았으니 마음대로 쓰셔도 됩니다.   물론 제가 어떠한 기술적, 법적 책임을 지지는 않는다는 점은 유의 부탁드립니다.

https://drive.google.com/drive/folders/0B-F0jEb44gqUN3cxaGVDdklwdWc?usp=sharing


댓글 없음:

댓글 쓰기