Rocky Linux, RStudio Server, Shiny Server 설치
Rocky Linux에 RStudio Server와 Shiny Server를 설치한 내용을 간단하게 요약하고자 합니다.
Rocky Linux 설치
Rocky Linux는 Red Hat Enterprise Linux(RHEL)의 소스 코드를 이용하여 만들어진 무료 리눅스 배포판으로서 2021년 6월 21일부터 정식으로 공개되었습니다. 2022년 7월 현재 가장 최신 버전은 2022년 5월 6일에 공개된 Rocky Linux 8.6(Green Obsidian)입니다.
Rocky Linux 준비
Rocky Linux를 PC에 설치하기 전에 파일을 다운받아 설치 USB를 만듭니다.
Rocky Linux 다운로드
- https://rockylinux.org/ 접속
- Rocky Linux 8 다운로드
Intel CPU를 가진 일반 데스크탑 PC에 설치할 계획이라서 x86_64
용으로 다운 받았습니다. DVD
용으로 파일용량이 큰 것을 다운 받았는데, 용량이 작은 Minimal
로 다운 받아도 될 것으로 봅니다.
Rocky Linux 설치 USB 만들기
부팅용 설치 USB를 만드는 프로그램은 여러가지가 있습니다. 여기서는 fedora media writer
를 이용하였습니다.
Rocky Linux 설치
PC는 USB 부팅이 가능하여야 합니다. 만일 USB 부팅이 안된다면 BIOS 설정을 열어 USB 부팅이 되도록 설정합니다.
- 컴퓨터를 켜고 Delete, F2, F10 또는 F11 키를 누릅니다. (컴퓨터마다 키가 다르므로 BIOS가 나타날때까지 반복해서 다 눌러봅니다)
- BIOS가 나타나면 커서 키를 사용해 부팅 메뉴를 찾습니다.
- 부팅 메뉴에서 USB가 목록의 맨 위에 오도록 변경합니다.
Rocky Linux 설치화면이 나타나면 아래 사항을 조정하고 나머지는 그대로 진행하여 설치합니다.
- time & date : asia/seoul
- software selection : minmal
- network & host name : 주어진 ip 설정(또는 동적 ip 설정)
- root password 설정
- user creation 설정
Rocky Linux 설치
설치가 끝나면 재부팅됩니다. 이때 USB를 빼고 로그인 화면이 나타날 때까지 기다립니다. 로그인 화면에서 id는 root, 패스워드는 설치할 때 설정한 패스워드를 입력하여 로그인합니다. 아래 명령어들을 입력하여 설치가 잘 되었는지 확인합니다.
login: root
# who
# whoami
# rpm -qa | nl
# df -h
# date
# ping -c3 8.8.8.8
# exit
- who : 로그인된 id들이 화면에 출력됩니다.
- whoami : 내 id가 화면에 출력됩니다.
- rpm -qa | nl : 설치된 패키지들을 확인합니다.
- df -h : 디스크 파티션 사용 통계가 나타납니다.
- date : 날짜를 확인합니다.
- ping -c3 8.8.8.8 : 네트워크가 잘 되는지 확인합니다.
확인 결과 이상이 없으면 설치가 잘 된 것입니다. 이제 exit
을 입력하여 로그아웃을 합니다.
리눅스 초기 설정
클라이언트 PC에서 리눅스 서버 접속
이제는 리눅스가 설치된 PC에서 바로 접속하기 보다는 클라이언트 PC에서 PuTTY
를 이용하여 접속하여 작업하겠습니다.
PuTTY를 검색하여 다운 받아 설치합니다. 리눅스 서버의 ip에 Telnet
으로 접속합니다. 접속하는 포트 22
번은 기본적으로 열려 있습니다.
sudo 계정 설정
sudo
는 일반 유저에게 root와 같은 슈퍼 유저 권한을 주는 명령어입니다. 일반적으로 root로 접속하여 작업하기 보다는 일반 유저 id로 접속하여 작업하는 것이 안전합니다. 그러나 일반 유저는 패키지 등을 설치할 때 권한이 없어서 제한이 됩니다. 이때 sudo를 이용하여 한시적으로 슈퍼 유저의 권한을 갖게 됩니다.
일반 유저에게 sudo를 사용할 수 있는 권한을 주려면 아래와 같은 방식으로 합니다. 다른 방법도 있지만 여기서는 간편한 방법으로 하였습니다.
참고로 리눅스에서 #
은 root로 로그인할 경우에 나타나며, $
은 일반 사용자로 로그인할 때 나타납니다.
login: root
# visudo
# usermod --append -G wheel username
# id username
# exit
login: username
$ sudo date
- root로 로그인
visudo
를 입력한 후, 아래 내용이 있는지 확인%wheel ALL=(ALL) ALL
확인(수정없는 종료는:x
)- 기본으로 위 내용이 있기 때문에 생략 가능
- 만일 줄 맨 앞에 #이 있으면 제거하고 저장(
i
-> 편집 ->ESC
->:wq
)
- 아래 명령어를 입력하여 username(유저id)를 wheel 그룹에 추가
- usermod –append -G wheel username
- 아래 명령어로 그룹에 추가되었는지 확인
- id username
exit
을 입력하여 root 로그아웃- username 으로 로그인
sudo date
를 실행하여 잘 작동되는지 확인
이후부터는 일반 유저로 로그인하여 sudo 명령어를 사용하는 방식으로 합니다.
리눅스 초기 설정
upgrade
아래 명령어로 리눅스 업그레이드를 합니다.
$ sudo dnf upgrade
주요 패키지 설치
패키지 설치는 sudo dnf install 패키지명
형식으로 설치합니다. 주요 패키지를 먼저 설치하도록 하겠습니다.
$ sudo dnf install chrony gcc gcc-c++ tree bc zip unzip man-pages wget httpd java-1.8.0-openjdk java-1.8.0-openjdk-devel
chrony 패키지의 경우 시간동기화 패키지인데 필요하면 아래와 같은 명령어로 활성화시킵니다.
$ systemctl enable chronyd
$ systemctl start chronyd
$ systemctl status chronyd
R 설치
준비
$ sudo dnf config-manager --set-enabled powertools
$ sudo dnf install epel-release
설치
$ sudo dnf install R
확인
$ R --version
R 관련 리눅스 패키지 설치
R에 필요한 리눅스 패키지를 설치합니다. 이미 설치되어 있으면 설치되어 있다고 메시지가 나옵니다.
$ sudo dnf install make gcc gcc-c++
$ sudo dnf install libcurl-devel libxml2-devel openssl-devel texlive-*
위 패키지가 설치되어 있지 않으면 R 패키지 설치시 에러가 발생합니다.
전체 유저용 R 패키지 설치
root로 R을 실행하여 패키지를 설치하면 모든 유저가 사용할 수 있습니다. (샤이니 서버 운영에 필요함)
$ sudo -i R
> install.packages("skimr")
> install.packages(c("shiny", "rmarkdown", "tidyverse"))
참고로 “shiny” 패키지는 샤이니 서버를 설치하기 전에 미리 설치하여야 합니다.
RStudio Server 설치
다운로드 및 설치
아래와 같은 명령어로 다운로드하고 설치합니다.
$ sudo wget https://download2.rstudio.org/server/rhel8/x86_64/rstudio-server-rhel-2022.02.3-492-x86_64.rpm
$ sudo dnf install rstudio-server-rhel-2022.02.3-492-x86_64.rpm
8787 포트 firewall 설정
RStudio Server가 사용하는 포트(8787)을 열어줍니다.
$ sudo firewall-cmd --add-port=8787/tcp --zone=public --permanen
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all
Selinux 비활성화
브라우저로 접속할 때 에러가 나는 것을 막기위해 Selinux를 비활성화 합니다.
$ sudo vi /etc/selinux/config
i
를 눌러 편집 상태로 변환- 키보드로
SELINUX
부문을 찾아SELINUX=disabled
로 수정 ESC
눌러 편집 상태에서 나온 후:wq
를 눌러 저장하고 종료
수정된 부문을 적용하기 위해 아래 명령어로 시스템을 재부팅합니다.
$ sudo reboot
RStudio Server 상태 확인
$ sudo systemctl status rstudio-server
RStudio Server 접속 확인
- 브라우저에서
http://ip-address:8787
접속하여 확인 - 리눅스 유저 id와 패스워드로 접속
RStudio server에서 전체유저용 R 패키지 설치
패키지를 전체 유저용으로 설치하여야 Shiny 서비스에서 에러가 나지 않습니다.
- Terminal 탭에서
sudo -i R
실행
$ sudo -i R
- install.packages(“패키지명”)
> install.packages("plotly")
Shiny Server 설치
Shiny Server를 설치하기 전에 R에 shiny 패키지가 설치되어 있어야 합니다. 또한 rmarkdown 패키지도 설치되어야 합니다.
다운로드 및 설치
$ sudo wget https://download3.rstudio.org/centos7/x86_64/shiny-server-1.5.18.987-x86_64.rpm
$ sudo dnf install --nogpgcheck shiny-server-1.5.18.987-x86_64.rpm
shiny-server 상태 확인
$ sudo systemctl status shiny-server
샤이니 서버를 시작, 자동시작, 다시시작 하려면 아래와 같은 명령어를 사용합니다.
$ sudo systemctl start shiny-server
$ sudo systemctl enable shiny-server
$ sudo systemctl restart shiny-server
- 시작 : sudo systemctl start shiny-server
- 부팅시 자동시작 : sudo systemctl enable shiny-server
- 다시 시작 : sudo systemctl restart shiny-server
3838 포트 firwall 설정
$ sudo firewall-cmd --add-port=3838/tcp --zone=public --permanen
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all
shiny-server 접속 확인
- 브라우저에서
http://ip-address:3838
접속하여 확인
shiny-server 설정
shiny-server에 대한 설정은 아래와 같이 shiny-server.conf
파일을 열어서 편집합니다.
특별히 설정할 것이 없다면 그대로 둡니다.
$ sudo vi /etc/shiny-server/shiny-server.conf
Shiny App 작성 및 서비스
처음에는 브라우저로 RStudio Server에 접속하여 Shiny App 프로젝트를 만들어 작업하는 것이 편리합니다. Shiny App을 만드는 방법은 여기서 다루지 않겠습니다.
만들어진 Shiny App을 shiny-server에서 서비스 하려면 /srv/shiny-server
에 앱(폴더)이 복사되어야 합니다.
터미널을 통해 RStudio Server에서 만든 Shiny App 프로젝트 홈 폴더에 접속합니다. RStudio에서는
[file]
탭의[More]
에서[Open New Terminal Here]
를 클릭하면 터미널이 열리면서 해당 폴더에 접속합니다.$ cd ..
를 입력하여 상위 폴더로 이동합니다.터미널에서 아래 명령어를 입력하여 Shiny App 폴더를
/srv/shiny-server
로 복사합니다.
$ sudo cp -r hello01 /srv/shiny-server/
만일 /srv/shiny-server
의 하위폴더에 복사하려면 다음과 같이 합니다.
$ sudo cp -r hello01 /srv/shiny-server/하위폴더명
샤이니 서비스가 제대로 작동하는 것을 확인하려면 브라우저에서 주소창에 http://ip-address:3838
을 입력하여 접속합니다. 하위 폴더가 있다면 http://ip-address:3838/하위폴더명
을 입력하여 접속합니다.