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を使ったコード整形方法(Fomatter)
Facebookでシェアした記事の画像反映ができていない時の修正方法
WordPressのwp_is_mobile()で条件分岐をするときは、キャッシュの設定に注意
Movable TypeでMTLoopを使ってkeyでソートしたときに、10個以上表示させると並びがおかしくなる
CSSで1行で簡単にスムーススクロールを実装できる「scroll-behavior」プロパティ
Visual Studio Codeの拡張機能「Trailing Spaces」でコードの中にある余計なスペースを表示する
Apacheのテストページを非表示にする方法
Dart Sassでファイルを分割して管理する方法|Dart Sass入門
Local by Flywheelの「Starting Local Machine…」画面から進まないときに試すこと
横幅が広がったときの挙動が変わる!CSS Gridの「auto-fill」と「auto-fit」の違い
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理