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


132

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

スペックを実行するには、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"

私の質問は:

ルビーでは何も変更しないはずなので、ターミナルから応答が返ってきたようですbundle installが、アトムの内側にする必要がありますか?誰かがatomの使い方やatomで何かを実行する方法を教えてもらえますか?

回答:


243

更新:それ以来、MacにRubygemをインストールするさまざまな方法について非常に詳細な説明を書いてきました。スクリプトを使用するという私の当初の推奨事項は今でも有効ですが、私の記事ではさらに詳しく説明しています:https//www.moncefbelyamani.com/the-definitive-guide-to-installing-ruby-gems-on-a-mac/

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

sudogemのインストールに使用したり、システムファイルやディレクトリのアクセス許可を変更したりすることは、自分が何をしているのかを知っている場合でも、強くお勧めしません。この悪いアドバイスを提供するのをやめてもらえますか?

このソリューションには、2つの主要なステップが含まれます。

  1. Macに付属しているバージョンと干渉しない別のバージョンのRubyをインストールします。
  2. PATH新しいRubyバージョンの場所がの最初になるように更新しますPATH。ディレクトリのリスト、および実行可能プログラムを見つけるためにコンピュータがディレクトリを検索する順序は、と呼ばれますPATH。あなたが入力した場合echo $PATH、ターミナルでは、あなたは、コロンで区切られた、ディレクトリのリストが表示されます。

MacにRubyをインストールする方法はいくつかあります。私がお勧めする最善の方法、そしてそこにあるさまざまなインストール手順でもっと普及したいと思うのは、適切なRuby環境をセットアップする自動スクリプトを使用することです。これにより、ユーザーが大量の作業を手動で実行し、必要なすべての手順を理解するのをユーザーに任せるという不適切な指示が原因でエラーが発生する可能性が大幅に減少します。

あなたが取ることができる他のルートは、すべてを手動で行い、最高のものを期待するために余分な時間を費やすことです。まず、Homebrewをインストールします。これにより、他のツールやmacOSアプリを簡単にインストールできます。

次に、Rubyの別のバージョンをインストールする最も一般的な4つの方法は次のとおりです。

同時に複数のバージョンのRubyが必要ない場合(macOSに付属しているバージョンを除く)

  • 自作-インストールしbrew install rubyたら、でrubyをインストールし、をPATH実行して更新しecho 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile、続いてsource ~/.bash_profile

多くのRubyバージョンを簡単に切り替える柔軟性が必要な場合

  • chrubyruby- install-私の個人的な推奨事項と、前述のスクリプトによって自動的にインストールされる推奨事項。これらはHomebrewでインストールできます。

  • rbenv -Homebrewと一緒にインストールできます

  • RVM

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

which ruby

それ以外のものでなければなりません /usr/bin/ruby

ruby -v

2.3.7以外のものにする必要があります。今日の時点で、2.6.1は最新のRubyバージョンです。

この新しいバージョンのRubyをインストールすると、bundleをインストールできるようになります。

gem install bundler

3
あなたが私のようで、zsh(またはbash以外の別のシェル)を使用している場合は、追加の手順があります!インストール後、rbenvあなたはしなければなりませんecho 'eval "$(rbenv init -)"' >> ~/.bash_profileソース
マーロ

2
/ usr / localディレクトリで権限エラーが発生した場合は、を実行しsudo chown -R $(whoami) $(brew --prefix)/*ます。詳細については、このスレッドを参照してください
AnasTiour19年

5
これは非常に役立ちます...正解として設定する必要があります。
スペンサー・ミュラーDiniz

4
MacOSは人々にzshへの切り替えを奨励しているので、〜/ .bash_profileへの変更を〜/ .zshrcにも適用する必要があります。
Adam_G

1
@stevecおそらく、rbenvのインストール手順のいくつかの手順を見逃しましたか?または、ターミナルを終了して再起動しなかったのでしょうか。ここでrbenvの指示に従います:github.com/rbenv/rbenv#installation。使用にあなたがしている開いた場合chruby:代わりに、私は非常にこのようなあなたのためのアップセットのすべてのもの、というスクリプトを使用することをお勧めしgithub.com/monfresh/install-ruby-on-macos。スクリプトを実行する前に、まずrbenvをアンインストールする必要があります。github.com
rbenv

69

実行したくない場合はsudo、homebrewを使用してrubyをインストールします

brew install ruby
export GEM_HOME="$HOME/.gem"
gem install rails

または、zshを使用している場合に追加することexport GEM_HOME="$HOME/.gem"をお勧めします~/.bash_profile.zshrc


4
カタリナOS😐のdidntはヘルプ
Efrat Levitan

私の答えは更新
STIKO

Rails is not currently installed on this system. To get the latest version, simply type: $ sudo gem install rails You can then rerun your "rails" command
EfratLevitan19年

railsコマンドを実行しようとしているようです。私が持っている最後の2つのコマンドはコマンドを実行しませんrails。プロジェクトの外部で新しいターミナルを開いてから、私の答えの最後の2行を1つずつコピーしてみてください。
STIKO

忘れないでくださいsource ~/. zshrc(または~/.bash_profile
gordinmitya

66

--user-install次のコマンドを実行しているパラメーターを使用して私のために働いた:

gem install name_of_gem --user-install

それから彼はそれをフェッチしてインストールし始めました。

編集

まだインストールできないgemが1つあり(Ruby開発キットのRuby.hヘッダーなどが必要でした)、別のバージョンマネージャーを試しましたが、ドキュメントに記載されているように、それでも実際には機能しませんでした。インストールして切り替えるだけです(バージョンを切り替えるだけではありません)。次に、インストールされているすべてのバージョンマネージャーを削除し、その後brew install ruby、最新バージョンでインストールして、PATH変数も設定しました。(醸造からのルビーのインストール後に言及されます)、それはうまくいきました。


6

通常、rbenvまたはのようなバージョンマネージャーを使用することをお勧めしますrvm。それ以外の場合、インストールされたGemsはroot他のユーザーと同様に利用できます。

自分が何をしているのかがわかっている場合は、を使用できますsudo gem install


6

macOS Catalinaをインストールした後、同じ問題に直面しました。以下のコマンドとその動作を試してみました。

sudo gem update

3

これを実行します

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init -)"

指示に従ってください(私の場合は〜/ .zshrcに追加してください);)


また重要:変更は、コンソールを再起動した場合にのみ有効になります。2つのオプション

  • 入る source <modified file>
  • 閉じて、もう一度開きます

Catalina(bashからzshに切り替わります)にアップグレードしましたが、すべてをコピーするのを忘れてい.bash_profileました.zshrc
wetjosh

2

Rubyを個別にインストールし、rbenv / rvmを使用してRubyをインストールした場合、バドラーは異なるバージョンを指す可能性があります。

試してみてください

gem env home

そして

ruby -v

両方とも同じバージョンを指している必要があります。rbenv/ rvmを使用してRubyをインストールしたことを確認してください。その場合は、個別にインストールしたRubyバージョンを削除してください。

gemを機能させるには、rbenvを呼び出す必要があります。

rbenv shell <ruby version> 

そして

rbenv global <ruby version>

RVMがどのように機能するかわかりません。これが機能するかどうか教えてください。


シェルとグローバルの設定がありませんでした。なぜことが🤔rbenv命令ではありません
feitla

なぜこれを逃したのかわからないので、試してみてみるとわかりました。
Bharathan Kumaran

0

Mac用のソリューション

  1. 最後のRubyバージョンでRVMをインストール/更新します

    \curl -sSL https://get.rvm.io | bash -s stable

  2. バンドラーをインストールする

    gem install bundler


この2つのコマンド(sudo) gem install ....が機能し始めた後


また、指定する必要があるかもしれないrvm use <version>
ObjectNameDisplay

-1

これはMacで私のために働いた

sudo chown -R $(whoami)$(brew --prefix)/ *


-1

私はMojaveを使用していますがrbenv、このソリューションは私のために機能します:

$ vi ~/.bash_profile

次の行をファイルに追加します。

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

-2

私が抱えていた問題:-/ Library / Ruby / Gems / 2.6.0ディレクトリへの書き込み権限がありません。

解決策は私のために働いた:sudo gem install rails -v 6.0.0



-3

Macユーザーの場合はsudoex sudo gem installcocoapodsを使用します


そのコマンドは、これが問題を解決する方法と理由の説明含めて、質問を解決するかもしれませんが、投稿の品質を向上させるのに本当に役立ち、おそらくより多くの賛成票をもたらすでしょう。あなたは今尋ねている人だけでなく、将来読者のために質問に答えていることを忘れないでください。回答を編集して説明を追加し、適用される制限と前提条件を示してください。
ブライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.