R (우분투 리눅스 Ubuntu Linux) 설치하기 | Installing R, R packages (e.g., tidyverse) and Rstudio on Ubuntu Linux (Zorin, Mint)
Sep 19, 2023
리눅스(Linux) 운영체제는 컴퓨터를 사용하는데 있어 훌륭한 플랫폼이다. 리눅스는 오픈소스이므로 무료이고 개발자에게 매력적인 Shell을 기본적으로 제공한다. 리눅스는 윈도우즈 대비 OS가 기본적으로 차지하는 저장 공간이 상당히 적은 용량을 차지하고 가볍고 빠릿하게 돌아가므로 산뜻한 기분을 느낄 수 있기도 한다.
그러므로 오래된 기기나 성능이 다소 떨어지는 라즈베리파이 등의 IOT 용도의 기기를 운영하는 체제로 사용할 수도 있고 완전한 무료이므로 이것 저것 설치하는데 제약이 없으므로 서버를 운영하는데도 대부분 리눅스를 사용한다고 한다.
또한 GUI 환경도 윈도우즈나 맥에 비하여 손색이 없을 만큼 아름다운 모습으로 발전하였다.
리눅스 배포판은 셀 수 없이 많지만 이 중 아마도 가장 유명하고 많이 사용되는 우분투(Ubuntu)와 이를 개조하여 더욱 아름다운 UI를 만들어낸 우분투 계열의 아들 Mint 및 Zorin 은 많은 사람들이 사용하고 있으며 리눅스가 윈도우즈나 맥에 비하여 다루기 어려운 상황이 발생하였을 때 개발자 수준의 OS System에 대한 이해가 없다고 하더라도 검색을 통하여 어려움을 해결해 나갈 수 있는 내용이 웹에 많이 공유되어 있다. 1
하지만 매번 새롭게 단장하여 더욱 예쁜 모습으로 무료로 공개되는 아름다운 운영체제 리눅스는 윈도우즈에 익숙한 사람에게 어려움이 다소 있을 수는 있다. 우분투는 윈도우즈와 매우 유사하지만 그래도 처음 설치 했을 때 한글을 설정하거나 Bash Shell 터미널을 사용하여 프로그램을 설치하는 등 CLI 환경에 익숙하지 않은 경우가 많으므로 다소 노력이 필요할 수 있다. 2
R (윈도우즈 Windows 10) | 프로그래밍 언어 R 설치하기에서 R을 설치하고 패키지를 설치하는데 에러가 발생하지 않기 위한 방법을 정리 한 바 있다.
리눅스(우분투 계열)에 R을 설치하고 패키지를 설치하는데 있어 어려움이 있을 수 있으므로 이 때 에러가 발생하지 않도록 하기 위한 설치 과정을 정리하고자 한다.
Installing r-base
리눅스에서 R을 설치하는 것은 Bash shell 등 터미널을 구동하여 쉽게 할 수 있다. apt install
명령어를 사용하면 r-base를 설치 할 수 있다.
R CRAN 에서 Ubuntu Packages For R - Brief Instructions 을 찾아 가면 나오는 설명에 따라서 순차적으로 터미널에 명령어를 복사하여 붙여넣기로 입력한다. 리눅스는 권한을 명확하게 구분하므로 명령어를 복사하여 붙일 때 sudo를 쓰고 나서 써 주어야 한다.
sudo apt update -qq
sudo apt install --no-install-recommends software-properties-common dirmngr
sudo wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt install --no-install-recommends r-base
sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+
Installing r-base-dev
install.packages()
함수를 사용하여 패키지를 설치하기 전에 r-base-dev
를 설치하여야 한다. r-base
설치와 같이 r-base-dev
역시 bash session 등으로 설치할 수 있다.3
sudo apt install r-base-dev
이제, 대부분의 R 패키지를 install.packages()
함수로 설치할 수 있게 되었다.
Installing tidyverse (or other R packages with system dependencies)
R의 패키지는 의존성을 가진 관계에 있을 수가 있다. R 패키지가 다른 R 패키지에 의존하고 있다면 install.packges()
함수는 자동으로 의존성 패키지를 설치해 줄 것이다.
그러나 의존성이 R 패키지가 아닌 것에 있다면 인위적으로 명시하여 해당 패키지를 설치해 주어야 하는 경우가 발생할 수 있다. 대표적으로 tidyverse
가 있으며 이 패키지를 설치하기 위해서는 다음의 non-R packages: libcurl4-openssl-dev
, libssl-dev
, libxml2-dev
를 bash session 등으로 설치해야 한다.3
sudo apt install libcurl4-openssl-dev libssl-dev libxml2-dev libharfbuzz-dev libfribidi-dev libfontconfig1-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev
이제 tidyverse
를 R에서 install.packages()
함수로 설치할 수 있게 되었다.
install.packages("tidyverse")
Installing RStudio Server
Rstudio Server는 기본적으로 system users에게만 접근 가능한 권한이 부여되어 있다. 따라서 다음과 같은 사용자 생성 및 모드 변경이 필요할 수 있다.
useradd -m <user_name> # create a user with a home directory
passwd <user_name> # set password
usermod -G sudo <user_name> # add the user to the sudo group
gdebi 와 RStudio Server를 설치한다. 다음의 설치 명령어는 버젼이 계속해서 업그레이드 될 것이므로 Download RStudio Server for Debian & Ubuntu Rstudio 사이트에서 찾아 활용한다.
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.4.1717-amd64.deb
sudo gdebi rstudio-server-1.4.1717-amd64.deb
Rstudio Server를 설치하고 나면 자동으로 start 되므로 웹 브라우저에 127.0.0.1:8787 을 입력하면 Rstudio를 웹 브라우저에서 사용할 수 있다.
그러나 수동으로 서버를 종료하고 시작하고 다시 시작하고자 한다면 다음의 명령어를 사용할 수 있다.
sudo rstudio-server stop
sudo rstudio-server start
sudo rstudio-server restart
추가로 다음과 같은 관리 명령어가 있다.
sudo rstudio-server active-sessions # list all currently active sessions
sudo rstudio-server suspend-session <pid> # suspend an individual session
sudo rstudio-server force-suspend-session <pid> # a "force" variation of the suspend command which will send an interrupt to the session to request the termination of any running R command
-
우리나라는 윈도우즈가 압도적인 수준으로 OS System을 점유하고 있으므로 윈도우즈 이 외의 OS에 관심 자체가 없는 경우가 많으나 MS 윈도우즈 독점 상황을 우려한 대한민국 정부가 대안으로 리눅스의 사용을 독려하기 위하여 리눅스 Mint를 개조하여 한국형 OS 하모니카를 만들기도 하였다.(한국형 리눅스 OS는 하모니카 OS 이 외에도 한컴에서 개조한 리눅스도 있고 다른 OS도 있고 다양한 종류가 있다.) 군대에 하모니카 OS가 설치된 PC를 지급하기도 하였지만 윈도우즈 점유율이 압도적인 상황에서 리눅스로 운영할 수 없고 윈도우즈에서만 작동하는 프로그램들이 있으므로 큰 호응을 얻지 못하였다. 그리하여 한국형 리눅스 OS 프로젝트는 흐지부지 된 것 같아 매우 안타깝다. 판매 목적으로 출시하는 프로그램이 소수가 사용하는 리눅스를 겨냥하여 프로그램을 만들어야 할 필요가 없으므로 대세 OS인 윈도우즈에만 집중되는 경향은 자본주의 생태계 특성 상 어쩔 수 없는 상황에 있는 듯 하다. ↩︎
-
실제 사용 해 보면 구글링 등으로 해결이 가능하며 그렇게 어렵지는 않다. ↩︎
-
이것을 모르고 패키지가 설치되지 않아 한참을 검색 엔진을 헤매면서 괴로워했다. ↩︎