티스토리 뷰

프로그래밍 공부/Ruby on Rails : 배포

rbenv 설치

나른한 하루 2020. 9. 26. 23:01
  • rbenv 개념 및 사용 이유

rbenv는 루비의 버전을 독립적으로 사용할 수 있도록 도와주는 패키지 입니다.

기본적으로 Mac 같은 경우, 주로 뭔가 패키지를 설치할 때 Homebrew 명령어를 입력해서 설치를 하곤 하는데, Homebrew가 Ruby언어 기반입니다. 그렇다보니 Mac에서 ruby 명령어를 입력해보면 기본적으로 루비가 설치되어 있는것을 볼 수 있습니다.

하지만 위 사진에서 보시다싶이 Mac에 설치된 ruby는 기본적으로 OS에 기본적으로 의존되다 보니, 이런 일이 생길수도 있습니다 :

1) 현재 개발자가 진행하는 프로젝트는 2개이긴 하나, 각 프로젝트 별로 사용되는 Ruby 버전이 다릅니다.

 * 2.6.3 버전, 2.3.3 버전

2) 개발자는 두 프로젝트를 자주 오가며 개발을 하는데, 프로젝트를 오갈 때 마다 ruby버전을 지우고 다시 설치하는 귀찮음을 반복해야 할 수도 있습니다.

 

위와같은 불편함을 감수하고자 탄생한게 rbenv 입니다.

rbenv를 통해 여러개의 ruby 버전 설치가 가능하면서, 매번 필요할 때 마다 간단하면서도 빠르게 여러 ruby 버전을 오갈 수 있습니다.

 

 

 

  • RVM vs rbenv

저같은 경우에는 과거에는 쭈욱 RVM을 써왔다가, 최근들어 rbenv를 갈아탔습니다.

그리고 'RVM을 왜 안쓰고 rbenv를 써야해요?' 라는 의문이 들 수 있는데, 일단 결론적으로는 rbenv이 RVM에 비해 가볍습니다.

 

나중에 가면 ruby에서는 Gem이라고 불리는 라이브러리 version에 대한 dependency를 관리해야 할 일이 생기는데, rbenv는 dependency를 책임지는 라이브러리가 비생성 되다보니 이 덕분에 라이브러리 dependency도 함께 설치되는 rvm에 비해 가볍다는 장점이 있습니다. (어차피 후에 Rails에서 라이브러리를 관리하는 매니징이 따로 설치됩니다.; Bundler)

 

 부록  Github : 당신이 rbenv를 써야하는 이유

 

 

  • Chapter 1-1 : rbenv 설치 (ubuntu)

 참고  해당 설명은 ubuntu OS 기준으로 작성되었습니다.

 

1. 터미널에 다음 명령어를 입력해서 rbenv 관련 github 자료를 pull 합니다.

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

 

2. 명령어를 통해  .bashrc  파일에 아래의 환경변수 내용을 자동으로 추가합니다.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

 

3. 현재 열려진 shell에서 최신  .bashrc  으로 script가 실행되도록 reload 시킵니다.

source ~/.bashrc

 

4. 아래 명령어를 통해 rbenv가 제대로 설치했는지 확인합니다.

which rbenv

위와같이  .rbenv  이하 디렉터리로 표시되면 성공입니다.

 

5. rbenv에 ruby를 설치하기 위한 플러그인을 다운로드 합니다.

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash

 

6. doctor을 통해 rbenv 패키지가 잘 설치됐는지 확인합니다.

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash

 

 

  • Chapter 1-2 : rbenv 설치 (Mac OS)

 참고  해당 설명은 Mac OS 기준으로 작성되었습니다.

 

1. homebrew 설치

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

2. rbenv 설치

brew install rbenv

 참고  만약 아래와같이 에러가 발생할 경우

위와같이 에러가 생길 시 아래 명령어 입력

sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions
chmod u+w /usr/local/share/zsh /usr/local/share/zsh/site-functions

 

3. rbenv 초기화

rbenv init

 

위 코드를 아래와 같이  .zshrc  에 옮겨써넣으세요.

 

4. 터미널을 껏다 키세요.

 

5. rbenv 설치 완료 및 doctor로 설치가 잘 됐는지 확인

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

 

 

  • Chapter 2 : rbenv에 ruby 설치

 참고  사전에  Chapter 1  대로 rbenv가 설치되어 있어야 합니다.

 

1. 설치하기를 원하는 버전의 ruby를 설치합니다.

# rbenv install [루비버전]

rbenv install 2.6.3

 참고 1  설치 가능한 Ruby 버전 목록은 아래 명령어를 참고해주세요. (내용 참고: 공식문서)

# list latest stable versions:
rbenv install -l

# list all local versions:
rbenv install -L

 

 참고 2, MAC OS 한정  깔고자 하는 Ruby 버전이 없나요?

그럴경우엔 homebrew를 업데이트 해보세요. [Stackoverflow 참고]

brew upgrade ruby-build

 

 참고 3  AWS EC2 t2.micro 기준, 약 5분정도 걸렸습니다.

 

 참고 4  만약 아래와 같이 에러가 발생한 메세지 중 no acceptable C compiler found in $PATH, 을 확인할 수 있을것입니다. 이는 C compiler가 설치가 안되었다는 것을 보여줍니다.

아래 명령어를 통해 추가적으로 C Compiler을 설치합니다.

sudo apt-get update
sudo apt-get install -y gcc

 

 참고 5  만약 아래와 같이 에러가 발생한 메세지 중 make: command not found 을 확인할 수 있을것입니다. 이는 make 명령어 관련된 패키지 설치가 안되었다는 것을 보여줍니다.

아래 명령어를 통해 추가적으로 make 패키지를 설치합니다. :

sudo apt-get update
sudo apt-get install -y make

 

 참고 6  기타적으로, 아래와 같이 패키지 설치가 요구되면 명렁어 그대로 입력해서 패키지 설치를 해주세요.

sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

 

 참고 7, MAC OS 한정  place parentheses around the 'sizeof(VALUE)' expression to silence this warning

Ruby 2.6.7 한정으로 자주 발생되는 에러같은지, 위 에러 키워드로 검색하니 바로 rbenv 2.6.7 설치도중 에러 발생 및 해결방법이 상위검색어에 나왔습니다. [참고 : Github Issue]

 

간단하게 아래 명령어를 입력하면 됩니다.

CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.6.7

 


 

2. ruby 버전 설치가 끝난 후, 설치가 잘 됐는지 확인합니다.

rbenv versions

 

3. 하지만 위 사진을 보면 아직 ruby는 기존 OS에 설치된 ruby(system)를 가리키고 있습니다.

기본적으로 shell이 열리면 rbenv에 설치된 ruby를 가리키도록 바꿔주세요.

# rbenv global [rbenv로 설치된 루비버전]

rbenv global 2.6.3

 

 참고  만약 현재 위치한 디렉터리에서 만큼은 다른 ruby를 가리키고 싶다면, 아래와 같이 설정해주면 됩니다.

# rbenv local [rbenv로 설치된 루비버전]

rbenv local system

 


여기까지 우리는 ruby를 독립적으로 설치/활용 준비를 해보는 과정을 진행해봤습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함