rbenvでのRuby管理

<!-- wp:paragraph -->
<p>この投稿では、Rubyのバージョン管理ツールであるrbenvの使い方や注意点、困ったときにやることリストをまとめます。<br>MACでOSがCatalina以降の方を対象としています。WindonsPCの方や、OSのバージョンがMojava以前の方はご注意ください。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>rbenvとは</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Rubyの複数バージョンをインストールし、<span class="marker">フォルダごとまでRuby</span><span class="marker">の</span><span class="marker">バージョンを切り替えられるツール</span>です。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>例えば、RubyではRuby on Railsを用いて、Webアプリを制作します。<br>そのとき、使いたいGem（ライブラリ）によっては、railsのバージョンを切り替えたい時があります。<br>アプリAは、Railsのバージョンを5.2.1で、アプリBはRailsのバージョンを6.0.3でなどですね。<br><br>そのとき、RubyとRailsはバージョンの互換性を考慮する必要があるので、<br>Rubyのバージョンも複数使えると便利ということですね。<br>ちなみに、Rubyを複数入れておくと、そのRubyに対し、Railsをそれぞれ紐づけることができます。<br>リストで紐付けを表現すると以下のような形ですね。</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>Ruby 2.5.1<ul><li>Rails 5.2.1</li></ul></li><li>Ruby 2.6.5<ul><li>Rails 6.0.3</li></ul></li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>rbenvのインストール</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>メジャーである、<span class="marker">Homebrewでのrbenvのインストール方法</span>を紹介します。<br>ターミナルを開いて、以下のコマンドを実行するだけです。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>brew install rbenv</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>次に<span class="marker">rbenvがインストールできているかの確認</span>をしていきます。<br>以下のrbenvのバージョンを確認するコマンドをターミナルで実行してください。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv version</code></pre>
<!-- /wp:code -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">以下のような出力になれば、rbenvをインストールできています。</pre>
<!-- /wp:preformatted -->

<!-- wp:code -->
<pre class="wp-block-code"><code>system (set by /Users/ユーザー名/.rbenv/version)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>また、<span class="marker">ログインするたび、PCを再起動するたびに、rbenvを使えるような設定</span>をするために以下のコマンドを実行します。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>echo 'eval "$(rbenv init -)"' &gt;&gt; ~/.zshrc</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2>rbenvにRubyをインストール</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Homebrewにインストールされた、<span class="marker">rbenvに特定のバージョンのRubyをインストール</span>します。<br>こちらもターミナルから以下のコマンドを実施いただければ大丈夫です。<br>また、以降は2.6.5のRubyをインストールする例で示していきます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv install 2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>インストールの確認は以下のコマンドで可能です。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv versions</code></pre>
<!-- /wp:code -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">以下のように表示されれば正常にインストールできています。</pre>
<!-- /wp:preformatted -->

<!-- wp:code -->
<pre class="wp-block-code"><code>* system (set by /Users/ユーザー名/.rbenv/version)
  2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>ちなみに、<span class="marker">インストール可能な最新バージョンのRubyを知りたい</span>など思った時は、以下のコマンドで、インストール可能なRubyのバージョン一覧を出力できます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv install --list</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>また、<span class="marker">特定のRubyのバージョンがインストール可能か</span>もコマンドで確認できます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv install --list | grep 2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>以下のように表示されていれば、インストール可能です。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2>rbenvで使用するRubyのバージョンを指定する</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>最後に、rbenvにインストールされているRubyのバージョンをPC全体、フォルダに指定します。</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>PC全体のRubyバージョン指定</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>以下のコマンドで、Rubyバージョンを指定できます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv global 2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>また、Rubyバージョンが意図したものに指定できているかの確認は、以下のコマンドで可能です。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>ruby -v</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>以下のように表示されれば、正常に設定できています。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>ruby 2.6.5p114</code></pre>
<!-- /wp:code -->

<!-- wp:heading {"level":4} -->
<h4>フォルダごとのRubyバージョン指定</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>以下のコマンドで、Rubyバージョンを指定できます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv local 2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>バージョンの確認は、PC全体に指定した時と同じです。<br><span class="marker"><strong>フォルダごとにRubyバージョンを指定した際は注意点があるので、必ずご確認ください。</strong></span></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>フォルダごとのRubyバージョンを指定する際の注意点</h4>
<!-- /wp:heading -->

<!-- wp:paragraph {"fontSize":"medium"} -->
<p class="has-medium-font-size">Rubyのバージョン指定の優先度は、local &gt; globalになります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>例えば、以下のコマンドを特定のフォルダで入力していたら、<span class="marker">コマンドの順序に関係なく</span>、<br>Rubyバージョンは2.5.1になります。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv global 2.6.5
rbenv local 2.6.5</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>解決するためには以下コマンドを入力いただければ大丈夫です。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>rbenv local --unset </code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Rubyバージョンを再確認し、Rubyのバージョンが変わっていれば、OKです。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>rbenvでのよくあるRubyバージョンエラー</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>ここでは、rbenvをインストールをして、バージョン指定までしたけれど、うまくいかないとなった時に疑うポイントをまとめます。</p>
<!-- /wp:paragraph -->

<!-- wp:list {"ordered":true} -->
<ol><li>Command Line Toolsがインストールされていない</li><li>Homebrewがインストールされていない</li><li>rbenvのインストール時に、ruby-buildのインストールのみ失敗している</li><li>rbenvなどが一部だけインストールできていない</li><li>rbenvのインストールに失敗している</li><li>rbenvを使用することをPCに伝えられていない</li><li>rbenv localで意図しないバージョン指定している</li></ol>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>主な原因は、上記の7点に集約されます。<br>⑤〜⑦に関しては、正常に実施できているかの説明をしていますので、記事を見直していただければと思います。</p>
<!-- /wp:paragraph -->

<!-- wp:jin-gb-block/box-with-headline {"boxStyle":"kaisetsu-box2","boxTitle":"①Command Line Toolsがインストールされていない"} -->
<div class="wp-block-jin-gb-block-box-with-headline kaisetsu-box2"><div class="kaisetsu-box2-title">①Command Line Toolsがインストールされていない</div><!-- wp:paragraph -->
<p>ターミナルで、インストール作業のログを見返していただき、以下がないかを確認します。</p>
<!-- /wp:paragraph -->

<!-- wp:code {"fontSize":"small"} -->
<pre class="wp-block-code has-small-font-size"><code>xcode-select: error: invalid developer　directory　‘/Library/Developer/CommandLineTools’</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>ログが見つかった場合は、以下のコマンドを実行すれば、CommandLineToolsをインストールできます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>xcode-select --install</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>インストール後は、rbenvのインストールの章から実施いただければOKです。</p>
<!-- /wp:paragraph --></div>
<!-- /wp:jin-gb-block/box-with-headline -->

<!-- wp:jin-gb-block/box-with-headline {"boxStyle":"kaisetsu-box2","boxTitle":"②Homebrewがインストールされていない"} -->
<div class="wp-block-jin-gb-block-box-with-headline kaisetsu-box2"><div class="kaisetsu-box2-title">②Homebrewがインストールされていない</div><!-- wp:paragraph -->
<p>以下のコマンドを実行してHomebrewがインストールできているかを確認できます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>brew -v</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>以下の表示になったら、インストールできていません。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>zsh: command not found: brew</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Homebrewインストールできていない方は、以下のコマンドでインストールできます。</p>
<!-- /wp:paragraph -->

<!-- wp:code {"fontSize":"small"} -->
<pre class="wp-block-code has-small-font-size"><code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>インストール後は、rbenvのインストールの章から実施いただければOKです。</p>
<!-- /wp:paragraph --></div>
<!-- /wp:jin-gb-block/box-with-headline -->

<!-- wp:jin-gb-block/box-with-headline {"boxStyle":"kaisetsu-box2","boxTitle":"③rbenvのインストール時に、ruby-buildのインストールのみ失敗している"} -->
<div class="wp-block-jin-gb-block-box-with-headline kaisetsu-box2"><div class="kaisetsu-box2-title">③rbenvのインストール時に、ruby-buildのインストールのみ失敗している</div><!-- wp:paragraph -->
<p>rbenvのインストールの章では、詳しく説明していませんでしたが、rbenvをHomebrewでインストール際に、同時にruby-buildというライブラリがインストールされます。<br>セキュリティソフトの影響など、何かしらの理由で、インストールができていない場合、rbenvにrubyをインストールしようとすると失敗します。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>確認は以下のコマンドでできます。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>brew list | grep ruby-build</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>コマンドを入力して、何も表示されなければ、インストールできていないので、以下のコマンドでインストールしましょう。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>brew install ruby-build</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>インストール後は、rbenvにRubyをインストールの章から実施いただければOKです。</p>
<!-- /wp:paragraph --></div>
<!-- /wp:jin-gb-block/box-with-headline -->

<!-- wp:jin-gb-block/box-with-headline {"boxStyle":"kaisetsu-box2","boxTitle":"④rbenvなどが一部だけインストールできていない"} -->
<div class="wp-block-jin-gb-block-box-with-headline kaisetsu-box2"><div class="kaisetsu-box2-title">④rbenvなどが一部だけインストールできていない</div><!-- wp:paragraph -->
<p>ネット環境やセキュリティソフトの影響で、一部ライブラリのみ正しくインストールできず、rbenvはインストールできているけど正常に動作しないというケースもあります。<br>その場合は、再インストールを試していただくと解決する場合があります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>各ライブラリ、ツールのアンインストール方法は以下です。</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Command Line Tools</h4>
<!-- /wp:heading -->

<!-- wp:code -->
<pre class="wp-block-code"><code> sudo rm -r /Library/Developer/CommandLineTools</code></pre>
<!-- /wp:code -->

<!-- wp:heading {"level":4} -->
<h4>Homebrew</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Homebrewはコマンドだけでは、削除しきれないものがあります。<br>アンインストール方法は<a href="https://weblabo.oscasierra.net/homebrew-uninstall/">こちら</a>を参照してください。</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>rbenvとruby-build</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>rbenvとruby-buildは依存関係にあるので、同時に消すと良いため、そのためのコマンドを記載します。</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>brew uninstall rbenv ruby-build</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph --></div>
<!-- /wp:jin-gb-block/box-with-headline -->