MacのRubyをrbenvで管理する方法

MacにはデフォルトでRubyがインストールされていますが、それを使用して何かインストールしようとすると、「You don’t have write permissions for the /usr/bin directory.(書き込み権限がありません)」というエラーが表示されることがあります。
Fetching: sass-3.7.4.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.このエラーを解消するためには、システムにデフォルトで入っているRubyを使うのではなく、rbenvを使ってRubyを管理・使用するようにします。
rbenvはRubyのバージョンを管理してくれる
rbenvを使うと、Rubyのバージョン管理が非常にラクになります。
Node.jsで言うところのnodebrewみたいな役割ですね。
先ほどから何度も言っている通り、macOSにもデフォルトでRubyが入っているのですが、どうしても古いバージョンのRubyのままになってしまいます。
rbenvを使うと、簡単に指定のバージョンにRubyを変更できます。
また、Rubyのインストール先が/usr/binからホームディレクトリの/.rbenv/shims/ruby内に変わり、権限の問題が解消されるため、冒頭で説明したエラーも表示されなくなります。
ちなみに、読み方に関しては「アールビー・エンブ」または「アールベンブ」だそうです。
rbenvのインストール方法
rbenvのインストール手順は下記の通りです。
- Homebrewでrbenvをインストール
- シェルの設定ファイルにコードを追加(パスを通す)
- rbenvでRubyをインストール
Homebrewでrbenvをインストール
まずはHomebrewを使ってrbenvをインストールします。
Homebrewをまだインストールしていない方は、過去記事にまとめているので、インストールをして下さい。
Homebrewがインストール済みの場合は、下記コマンドを実行すると、rbenvをインストールできます。
$ brew install rbenv ruby-buildシェルの設定ファイルにコードを追加
rbenvをインストールしたら、シェルの設定ファイル(.bash_profileや.zshrc)に下記のコードを入力します。
### rbenv
[[ -d ~/.rbenv ]] && \
export PATH=${HOME}/.rbenv/bin:${PATH} && \
eval "$(rbenv init -)"入力して保存したら、ターミナルを一度再起動します。
これで、パスが通せたはずなので、rbenvがちゃんと使えるようになったはずです。
下記コマンドを実行して、rbenvのバージョンが返ってくれば、ちゃんとインストールされています。
$ rbenv -vrbenvでRubyをインストール
まず、下記コマンドでインストールできるRubyのバージョン一覧を表示させます。
$ rbenv install -l表示されたバージョンの中から、インストールしたいバージョンをrbenv installでインストールします。
$ rbenv install 2.5.1インストールしただけではまだ使用状態にはなっていないので、インストールしたRubyの中から使用するRubyを選択する必要があります。
方法はrbenv globalでバージョンを指定するだけです。
$ rbenv global 2.5.1ちなみにglobalだと、PC全体で使用するRubyを指定になります。
特定ディレクトリに移動して、localで指定すると、指定したディレクトリ配下でのみ使用するRubyを指定できます。
最後に下記コマンドを実行すると、インストールしたRuby一覧が表示され、使用中のバージョンには*(アスタリスク)が付きます。
$ rbenv versions
これで、「You don’t have write permissions for the /usr/bin directory.」のエラーは出てこなくなるはずです。


Visual Studio Codeで対応する括弧に色を付けて見やすくする環境設定
CSSやJavaScriptでスクロールバーの横幅を取得する方法
Visual Studio Codeで連番を入力する拡張機能「vscode-input-sequence」
gulp-plumberとgulp-notifyでgulpエラー時にデスクトップで通知がくるようにする
Dart Sassを使う上で1番基本的なネストやアンパサンドの書き方|Dart Sass入門
Movable TypeでAssetURLやEntryPermalink・ContentPermalinkで出力されるパスを絶対パスから相対パスに変える
JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法
Nuxt.jsでのページ遷移設定方法(Vue Routerやnuxt-link)|Nuxt.jsの基本
「Dart Sass」「LibSass」「Ruby Sass」などSassの種類や記法に関するまとめ
Google Maps APIでピンの見た目をカスタマイズする方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?