본문 바로가기
기타

mac m1 ruby 설치 (brew rbenv)

2022. 1. 26.

mac os에는 기본적으로 ruby 가 설치되어 있다. 이렇게 미리 설치돼있는 ruby를 system Ruby 라고 한다.

$ which ruby
/usr/bin/ruby

$ rbenv versions
* system

그런데 이 system ruby를 그대로 쓰는 것이 좋지 않으니 새로 설치해서 사용하기를 권장한다. 

https://mac.install.guide/faq/do-not-use-mac-system-ruby/index.html

 

Do not use MacOS system Ruby · Mac Install Guide

Why it's bad to use the MacOS default Ruby (the Mac pre-installed Ruby). From the guide, Install Ruby on Mac.

mac.install.guide

 => 요약하자면, ruby를 사용할 때 함께 gem 이라는 라이브러리를 사용해줘야 하는데, 맥 os 에서는 gem 관련 설치, 실행 명령어들에 대해서 권한 오류가 발생한다는 것이다. 그렇다고 system ruby를 삭제하지는 말고 새로 설치하라는 것.

 

그래서 따로 ruby를 설치하려고 했고, 설치 도중 꽤 복잡하게 오류가 나서 디버깅 및 설치 과정을 기록하려고 한다.

- ruby 설치 중 오류 (BUILD FAILED (macOS 11.6.2 using ruby-build 20211227))

=> 해결

https://stackoverflow.com/questions/65524323/ruby-installation-2-2-2-fails-in-macos-big-sur

 

Ruby installation (2.2.2) fails in macOS Big Sur

I am running into some trouble installing Ruby 2.2.2 on macOS Big Sur. Has anyone had a similar issue that they were able to resolve? Many thanks 🙏 Error: `Downloading openssl-1.0.2u.tar.gz... ->

stackoverflow.com

아래 명령어로 설치해주니 잘 설치되었다.

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

 

아직 system ruby를 바라보고 있지만 2.5.5 버전의 ruby 도 잘 설치되었음을 확인할 수 있다.

어떻게 해결된 것인지 잘 이해는 안 갔지만....

CFLAGS 는 C코드를 컴파일할 때 컴파일러 옵션에 활용하는 환경 변수 중 하나라고 한다. 그런데 apple 에서 default cflags 옵션을 바꿔서 문제가 발생했고.. 그래서 명령어에 옵션을 바꿔서 쳐주면 잘 동작하는,, 그런 게 아니었을까 추측해봤음.

아무튼 여기까지 ruby는 정상적으로 잘 설치되었는데, 컴퓨터에서 바라보는 ruby 버전이 바뀌지 않는 문제가 있었다.

- 루비 버전 전환 오류

$ rbenv global 2.5.5

rbev versions 에서는 2.5.5 를 가리키는데, ruby -v 이나 루비의 경로는 여전히 system ruby 를 가리키고 있었다.

2.5.5버전을 가리키도록 하기 위해 ./zshrc 파일에서 환경 변수 설정을 해줘야 한다.

./zshrc 파일에 아래 코드를 추가해준다.

[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

정상적으로 가리키는 버전이 바뀌었음을 확인할 수 있다.

 

+) 환경변수를 맞춰준 후에는 반드시 source 명령어로 바뀐 설정을 꼭 적용시켜줘야 한다.

설치 도중 오류가 발생하면 일단 설정이 적용되었는지 첫번째로 확인하고, 그 다음으로는 터미널이 껐다 켜서 제대로 적용될 수 있도록 해주는 것을 추천한다.

댓글