RVMがインストール済みの新しいRubyバージョンを見つけられない(以前にHomebrewを使用してインストールされていた)


1

私は初心者です。あなたがまったく愚かだと思っていることを言っている、またはしているのなら、すみません。わざとやっていません。

開始方法:gemをインストールしたいのですが、次のエラーメッセージが表示されました。

ERROR:  While executing gem ... (Gem::FilePermissionError)
   You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory

どういうわけか、私のシステムは明らかにMacOSに同梱されているRubyバージョンを使用しているため、この許可エラーが発生します。Homebrewを使用してインストールした、新しくインストールしたバージョン2.6.1を使用する必要があります。

それで、インターネットの調査で、rvmをインストールし、Ruby 2.6.1をデフォルトにしようとしました。

~rvm --default use 2.6.1
Required ruby-2.6.1 is not installed.

そのため、rvmはRuby 2.6.1がインストールされていないことを通知します。しかし、homebrewはそれインストールされていると主張しています

~brew upgrade ruby
Error: ruby 2.6.1 already installed

自作のRubyをアンインストールし、rvm経由でRubyを再度インストールする必要がありますか?

回答:


0

まず第一に、あなたが言うことやすることは何も愚かなことにはなりません。私たちは、ある時点で初心者です。

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(のバージョンgemmacOSに付属)がインストールされています。

現在のターミナルセッションで特定のプログラムのどのバージョンが使用されているかを知りたい場合は、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を使用したときに、常に最新バージョンがインストールされるとは限らないことを思い出します。個人的にはchrubyruby-installRubyバージョンを管理することを好みます。

RVM、chruby、rbenvなどのツールの良いところは、同じコンピューターに複数のバージョンのRubyをインストールでき、簡単に切り替えることができることです。一方、Homebrewは一度に1つのバージョンのRubyしか管理できません。


0

Homebrewを使用してRubyをアンインストールしました。 brew uninstall ruby

次に、RVMを使用してRubyをインストールしてみました。 rvm install ruby

与えた Already installed ruby-2.6.0. To reinstall use:

rvm reinstall ruby-2.6.0

そこで、RVMで再インストールすることにしました。これでようやく問題が修正され、gemsをインストールできました。ただし、RubyのHomebrewのインストールに問題があった理由はまだわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.