[Apple Silicon] Ruby 설치 - rbenv

bunny.log·2023년 12월 7일

이슈 > ERROR: While executing gem ... (Errno::EACCES) Permission denied

Ruby는 macOS에 system으로 기본으로 설치되어 있는데

> which ruby
/usr/bin/ruby

rbenv로 관리되는 Ruby를 설치해야 된다. 위에러는 system Ruby를 사용하고 있기 때문에 나타나는 권한이 없다는 에러이다.

Apple Silicon의 경우 기본적으로 설치된 gem으로 설치한 cocoapods이 문제를 일으키는 경우가 있다는 점이다.

cocoapods를 설치하는 방법은 brew와 gem 두 가지인데, cocoapods은 gem으로 설치하는 게 권장사항이다.

문제는 이렇게 /usr/bin/gem으로 설치된 cocoapods은 pod install이 제대로 동작하지 않는다는 점이다.

해결책은 Rosetta를 사용하는 것인데, 성능 저하 문제도 있어 추천하고 싶지는 않다.

brew 설치

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

rbenv 설치

rbenv란?

rbenv는 여러 종류의 Ruby를 설치할 수 있게 합니다. rbenv 자체는 Ruby 설치를 지원하지 않습니다만, ruby-build라는 유명한 플러그인에서 Ruby를 설치할 수 있습니다. rbenv, ruby-build 모두 macOS, Linux나 다른 UNIX-계열 운영체제에서 사용가능합니다.

ruby-build란?

ruby-build는 다른 버전의 Ruby를 임의의 디렉터리에 컴파일하고 설치할 수 있게 하는 rbenv의 플러그인입니다. ruby-build는 rbenv 없이 독자적으로 사용 할 수도 있습니다. macOS, Linux나 다른 UNIX-계열 운영체제에서만 사용 가능합니다.

brew install rbenv

~/.zshrc에 내용 추가

# >>> rbenv >>>
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
# <<< rbenv <<<

설치할 수 Ruby 버전 확인

rbenv install -l

설치할 수 Ruby 버전은 다음 명령으로 확인할 수 있습니다.

3.0.6
3.1.4
3.2.2
jruby-9.4.5.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.1.1
truffleruby+graalvm-23.1.1

Only latest stable releases for each Ruby implementation are shown.
Use `rbenv install --list-all' to show all local versions.

ruby를 설치

그리고 원하는 버전의 ruby를 설치하고, global하게 사용할 수 있도록 설정해주자.

rbenv install 3.0.6 && rbenv rehash

rbenv 버전확인

rbenv --version

rbenv version을 확인해 봅니다.
system으로 되어있지만, 신규 추가된 3.0.6 버전도 함께 보입니다.

* system
  3.0.6 (set by /Users/유저이름/.rbenv/version)

rbenv로 글로벌 버전을 3.0.6로 변경합니다.

rbenv global 3.0.6
  system
* 3.0.6 (set by /Users/유저이름/.rbenv/version)

ruby 경로를 확인

Shell을 재시작하거나 변경사항을 적용해주고 ruby 경로를 확인해주자.

> which ruby
/Users/user/.rbenv/shims/ruby


> which -a gem
/Users/user/.rbenv/shims/gem
/usr/bin/gem
profile
더 많은 유익한 내용은 ->> https://github.com/nam-yeun-hwa

0개의 댓글