M1 Mac で gem の permission エラーで Sass がインストールできないときの対処法


M1 Mac にしたら Sass のインストールでエラーが出る

gem で Sass をインストールしようとすると権限がありませんとエラーが出ます。
gem のインストール先に書き込み権限がないことが原因のようです。

gem install sass

ERROR: While executing gem ... (Gem::FilePermissionError)
 You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.

今回は rbenv を使ってこの問題を改善します。
rbenv は Ruby の複数バージョンを管理し切り替えなどが行えるものです。権限のあるディレクトリで操作できるようになることからこの問題を改善できます。

gemのアップデート

gem をアップデートしておきます

gem update --system

gem のパスを確認

現在の gem のパスを確認します。
このパスだと権限がないため上記エラーが発生します。

which gem
/usr/bin/gem
which ruby
/usr/bin/ruby

rbenvのインストール

Rbenv を brew を使ってインストールしていきます。

まずは brew をアップデートします。

brew update

rbenv をインストールします。

brew install rbenv ruby-build

インストールできるバージョンを確認します。

rbenv install -l
2.6.9
2.7.5
3.0.3
3.1.1

今回は version 3.1.1 をインストールします。

rbenv install 3.1.1

rbenv の初期化

rbenv を初期化します

 rbenv init 

rubyをシステムからrbenvのrubyに切り替え

rbenv の ruby に切り替えます

rbenv global 3.1.1

切り替えの確認を行います。指定した 3.1.1 に「*」がついているので切り替わっています。

rbenv versions
system
*3.1.1 (set by /Users/username/.rbenv/version)

gem と ruby のパスの確認

改めてパスを確認します。以下のようにパスがrbenvになっていればOKです。


which gem
/Users/username/.rbenv/shims/gem

which ruby
/Users/username/.rbenv/shims/ruby

再度インストール

Sass のインストールを再度トライしてみます。

gem install sass

無事にインストールできました。

zshrc に PATH を通す

Catalina は bash から zsh に移行したので .zshrc に記述していきます。

sudo vi ~/.zshrc

以下を記述し保存します。

export PATH=~/.composer/vendor/bin:$PATH
[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"
保存したらシェルの設定を反映します
source ~/.zshrc

 

参考サイト

gem installでpermissionエラーになった時の対応方法

.bashrcを更新した時に、sourceコマンドやターミナル再起動だけでは永久に反映されない話

gem installでpermissionエラーになった時の対応方法

コメントを残す