/Library/Ruby/Gems/2.3.0 ディレクトリへの書き込み権限がありません。(Mac ユーザー) 質問する

/Library/Ruby/Gems/2.3.0 ディレクトリへの書き込み権限がありません。(Mac ユーザー) 質問する

以下は私が行う必要があることです。

スペックを実行するには、RSpec をインストールする必要があります。まず、gem install bundlerプロジェクトのルート ディレクトリで を実行します。次に、 を実行しますbundle install。単一のスペック ファイルを実行するには、次のようなコマンドを実行します。bundle exec rspec spec/00_hello_spec.rbすべてのスペックを一度に実行するには、 を実行しますbundle exec rspec

そこで、gem install bundlerターミナルに入力すると、次のエラーが発生しました:

/Library/Ruby/Gems/2.3.0 ディレクトリへの書き込み権限がありません。

これはAtomのプロジェクトファイルにあった

source "https://rubygems.org"
gem "rspec", "~> 3.2.0"

私の質問は次のとおりです:

どうやらターミナルが応答を返しているのは、Ruby では何も変更してはいけないのに、bundle installAtom 内で変更する必要があるからでしょうか? 誰か、Atom の使い方や、Atom 内で何かを実行する方法を教えてもらえませんか?

ベストアンサー1

macOS では、Mac にインストールされている Ruby バージョンを変更することはできないというのは正しいです。ただし、bundlerApple が提供するバージョンに干渉しない別のバージョンの Ruby を使用するなど、gem をインストールすることは可能です。

sudoたとえ何をしているのかわかっていたとしても、gem をインストールしたり、システム ファイルやディレクトリの権限を変更したりするために を使用することは強くお勧めしません。このような誤ったアドバイスはやめてもらえませんか?

解決策には主に 2 つのステップが含まれます。

  1. Mac に付属の Ruby と干渉しない別のバージョンの Ruby をインストールします。
  2. を更新してPATH、新しい Ruby バージョンの場所が の先頭になるようにしますPATH。一部のツールでは、これを自動的に実行します。PATHとその動作に詳しくない場合は、これは習得すべき基本事項の 1 つです。これにより、「コマンドが見つかりません」というエラーが発生する理由とその修正方法が理解できるようになります。

まず、インストールする必要があります自家製は、前提条件となるコマンドライン ツールをインストールし、その他の必要なツールを簡単にインストールできるようにします。

次に、別のバージョンの Ruby をインストールする最も簡単な方法は 2 つあります。

複数のRubyバージョンを簡単に切り替えられる柔軟性が必要な場合[推奨]

次の 4 つのオプションのいずれかを選択します。

brew install chruby ruby-install

chrubyおよびを選択した場合はruby-install、次のようにして最新の Ruby をインストールできます。

ruby-install ruby

.zshrcすべてをインストールし、上記のツールの指示に従ってまたはを設定したら.bash_profile、ターミナルを終了して再起動し、必要な Ruby のバージョンに切り替えます。 の場合はchruby、次のようになります。

chruby 3.1.3

設定する必要があるかどうか.zshrcは、.bash_profile使用しているシェルによって異なります。

macOS に付属しているもの以外に、同時に複数のバージョンの Ruby が必要ないことが確実な場合 [非推奨]

今は別のバージョンは必要ないと思っていても、最終的には必要になり、簡単に切り替えることができなくなります。これにより混乱や頭痛の種が発生するため、Homebrew を使用して Ruby をインストールおよび管理することはお勧めしません。

私の警告にもかかわらず、Homebrew を使用して Ruby をインストールすることを選択した場合、問題が発生した場合には自分で対処することになります。

  • Homebrew で Ruby をインストールします。
brew install ruby

次に、PATH次のコマンドを実行して更新します。

echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.1.0/bin:$PATH"' >> ~/.zshrc

3.1.0上記のコマンドの は、Homebrew が で始まる Ruby バージョンをインストールしたことを前提としています。3.1別のバージョンがインストールされた場合は、 を3.1Ruby バージョンの最初の 2 桁に置き換えます。

M1/M2 Macの場合は/usr/local/opt/homebrew

次に、これらの変更を有効にするためにシェルを「更新」します。

source ~/.zshrc

または、新しいターミナル タブを開くか、ターミナルを終了して再起動することもできます。

.zshrcBash を使用している場合はに置き換えてください.bash_profile。不明な場合は、ガイドを読んで、使用しているシェルを確認してください。

現在、システム以外のバージョンの Ruby を使用しているかどうかを確認するには、次のコマンドを実行します。

which ruby

そうであってはならない/usr/bin/ruby

ruby -v

3.1.3 以降である必要があります。

この新しいバージョンの Ruby をインストールしたら、bundler (またはその他の gem) をインストールできます。

gem install bundler

おすすめ記事