ruby on rails - x64 - あなたのユーザーアカウントはシステムRubyGemsへのインストールを許可されていません




ruby on rails インストール 2018 (4)

良いrbenv修正

  • sudoを避けます
  • ベンダー/バンドルへのインストールを避けます

問題は、少なくとも私にとっては、バンドラー自体が私のrbenvルビーバージョンにインストールされていなかったということでした。 バンドラーが存在していて使用可能に見えたとしても...パーミッションエラー以外は。

私を助けてくれたことの1つは、実際のコマンドライン自体でgemsをインストールしてもエラーメッセージが表示されないことです。 以下に示すように、問題を永久的に解決することにしたまで、回避策としてしばらくこれを行いました。

それを修正するために私はしました:

rbenv local 2.5.0 # Make sure I'm using a local version that exists
gem list | grep bundler # Note no output! Need to fix that!
gem install bundler
rbenv rehash
bundle (within my project that has a Gem file)

コマンドを実行しています

bundle install

プロジェクトフォルダにあります。 一部のプロジェクトフォルダではエラーが発生し、他のプロジェクトフォルダではエラーは発生しません。 エラーは次のとおりです。

あなたのユーザーアカウントはシステムRubyGemsへのインストールを許可されていません

これは推奨されるアドバイスに従うことで解決できることを私は知っています。

bundle install --path vendor/bundle

私の質問は、その動作が矛盾しているのはなぜですか?


RVMを使う:

あなたの$HOMEディレクトリに、あなたのシングルユーザ( 標準ユーザ/非rootユーザ )のために/home/youruser/.rvmインストールしなければなりません( /home/youruser/.rvmディレクトリを持っていなければインストールされません)。

rvmをインストールするには、 rvmを実行してください。

cd
command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import --
curl -sSL https://get.rvm.io | bash -s stable

これでrvmがインストールされました。 さらにプロンプ​​トが表示されるので、(ユーザー名を指定して) rvm更新します。

source /home/---YOURUSERNAME---/.rvm/scripts/rvm

sudo-needパッケージをインストールするためのプロンプトを表示しないようにするには、次のコマンドを実行します。

rvm autolibs disable

Rubyはあなたのユーザーのために、バージョン2.5(またはrvm list knownされている他のもの)でのみインストールすることができます。

rvm install 2.5

rvmサイトで指定されているとおり

説明:

あなたはおそらくsudoを使ってrvmをインストールしようとしますが、おそらくこのパッケージと一緒にubuntuをインストールしようとしますが、あなたはsudoパーミッションを持っていません。

このプロンプトはあなたがあなたの個人的な家のマシンには良いかもしれませんが、他の誰かによって管理されることが多いあなたの会社のユーザー(マシン)には良いかもしれません。

rvmがあなたの$HOMEインストールされるなら、gemはいつものようにそこにバンドルされます。

他のユーザーが自分の$HOMEディレクトリにrvmインストールしているため、動作が矛盾する可能性があります。


私の場合は、エラーメッセージが示唆していることだけを解決しました。

Your user account isn't allowed to install to the system RubyGems.
  You can cancel this installation and run:

      bundle install --path vendor/bundle

  to install the gems into ./vendor/bundle/

だから、代わりに:

bundle install

私は走った:

bundle install --path vendor/bundle

それはこの男のための解決策でした。

このソリューションの欠点は、現在のフォルダー内にvendorフォルダーを作成することです。これは、Gitを介してアプリケーションを配布する場合は.gitignoreに追加できます。


私の場合は、書き込めるようにするための十分なパーミッションがない既存の$BUNDLE_PATHを持っていました。

Your user account isn't allowed to install to the system RubyGems
bundle install --path vendor/bundle




gemfile