まず第一に、あなたが言うことやすることは何も愚かなことにはなりません。私たちは、ある時点で初心者です。
MacがHomebrewによってインストールされたRubyバージョンを自動的に認識しなかった理由は、デフォルトでは、コンピューターが特定のディレクトリでのみ実行可能プログラムを検索するためです。ディレクトリのリスト、およびコンピューターがそれらを検索する順序はと呼ばれますPATH
。「echo $PATH
ターミナル」と入力すると、ディレクトリのリストがコロンで区切られて表示されます。デフォルトでは、新しいmacOSインストールでは、リストは次のように表示されます。
/usr/bin:/bin:/usr/sbin:/sbin
Homebrewのインストール中に、新しいディレクトリ/usr/local/bin
が作成され、の先頭に追加されPATH
ます。ただし、Homebrewを使用してRubyをインストールすると、Rubyはにインストールされますが/usr/local/opt/ruby/bin
、これはPATH
自動的に追加されません。これは、Rubyのインストールの最後にHomebrewによって言及されているためです。確かに、このメッセージは初心者にはあまり意味がないかもしれません。
If you need to have ruby first in your PATH run:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
ルビーの自作バージョンがあなたになかったのでPATH
、あなたが入力したときgem install [some gem]
、コンピュータが呼ばれるプログラムを探しgem
に/usr/local/bin
最初にそれを見つけられませんでした、それは、それを探した/usr/bin
ものだから、それを見つけたシステムgem
(のバージョンgem
macOSに付属)がインストールされています。
現在のターミナルセッションで特定のプログラムのどのバージョンが使用されているかを知りたい場合は、which
コマンドを使用できます。例えば:
which ruby
which gem
これにより、コンピューターが最初に検出したプログラムの場所がわかります。
適切なRubyバージョンを使用しているかどうかを確認するために使用できる別のコマンドは次のとおりです。
ruby -v
このコマンドを実行した場合:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
変更を有効にするために新しいターミナルウィンドウまたはタブを開いた(または実行した)場合、Homebrew Rubyディレクトリがの最初にありますPATH
。つまり、コンピューターはgem
最初にそこを探し、Homebrewバージョンを使用していました。 Rubyの。
上記のコマンドを説明するために、単一引用符で囲まれたすべてのものを取得し、ユーザーのルートディレクトリ()で>>
呼び出されるファイルに追加.bash_profile
します(~/
)。新しいターミナルウィンドウまたはタブを開くたびに、.bash_profile
読み取りが行われ、そこで定義されたものが使用されます。
同様に、Ruby 2.6.1がHomebrewによってインストールされたことをRVMが認識できなかった理由は、RVMとHomebrewがお互いを知らない2つの別々の場所にRubyをインストールするためです。RVMを初めてインストールしたときに、バージョン2.6.0がインストールされました。なぜ2.6.1がインストールされなかったのかはわかりませんが、過去にRVMを使用したときに、常に最新バージョンがインストールされるとは限らないことを思い出します。個人的にはchruby
、ruby-install
Rubyバージョンを管理することを好みます。
RVM、chruby、rbenvなどのツールの良いところは、同じコンピューターに複数のバージョンのRubyをインストールでき、簡単に切り替えることができることです。一方、Homebrewは一度に1つのバージョンのRubyしか管理できません。