コマンドを実行しています
bundle install
プロジェクトフォルダ内。一部のプロジェクトフォルダーではエラーが発生し、他のプロジェクトフォルダーではエラーは発生しません。エラーは次のとおりです。
ユーザーアカウントはシステムRubyGemsへのインストールを許可されていません
これは、推奨されるアドバイスに従うことで解決できることを知っています。
bundle install --path vendor/bundle
私の質問は、なぜ行動に一貫性がないのですか?
私の場合、私はエラーメッセージが示唆することだけを解決しました:
ユーザーアカウントはシステムRubyGemsへのインストールを許可されていません。 このインストールをキャンセルして、実行できます: bundle install --path vendor/bundle でgemを./vendor/bundle/ にインストールします
したがって、代わりに:
bundle install
私が走った:
bundle install --path vendor/bundle
それが this guy の解決策でした。
このソリューションの欠点は、現在のフォルダー内にvendor
フォルダーを作成することです。Gitを介してアプリケーションを配布する場合は、.gitignore
に追加できます。
通常、RVM、rbenv、またはchrubyを使用してRubyをインストールする場合、すべてのgemは~/.rbenv/Ruby-version/...
の下のホームフォルダーにインストールされます。
システムを使用している場合Ruby(ただしデフォルトでインストールされているもの))gemは、Sudo
なしではアクセスできない場所にインストールされます。 。
私の推測では、バージョンマネージャのデフォルトはシステムRubyですが、プロジェクトの中には、異なるバージョンのRubyにアクセスできます。
少なくとも私にとっての問題は、バンドラー自体がrbenv Ruby version。にインストールされていなかったことでした。使用可能...許可エラーを除く
私を惹きつけたものの1つは、実際のコマンドライン自体でgemをインストールでき、エラーメッセージが表示されないことでした。以下に示すように問題を永続的に修正することを決定するまで、回避策としてこれをしばらく行いました。
それを修正するために:
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)
RVMの使用:
$HOME
ディレクトリに、シングルユーザー(標準ユーザー/非ルートユーザー)にrvm
をインストールする必要があります(インストールしない場合はインストールされません) t /home/youruser/.rvm
ディレクトリがあります。
指定されているとおり rvmサイトで 「シングルユーザーインストール場所:〜/ .rvm /」セクションの下で、シングルユーザー実行用にrvm
をインストールします。
cd
\curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles
これで、rvm
をインストールする必要があります。さらにプロンプトのように、rvm
(ユーザー名を指定して)を更新します。
source /home/---YOURUSERNAME---/.rvm/scripts/rvm
Sudo-needパッケージをインストールするためのプロンプトを防ぐには、次を実行します。
rvm autolibs disable
バージョン2.5(またはrvm list known
にリストされている他のバージョン)で、ユーザーのみにRubyをインストールできます。
rvm install 2.5
説明:
おそらくSudo
を使用して、おそらく buntu用のこのパッケージ を使用してrvmをインストールしようとしますが、Sudo権限がありません。
このプロンプトは、gemをシステム全体にグローバルにバンドルできないことを示しています。これはプライベートホームマシンには適していますが、他の誰かによって管理されることが多い企業ユーザー(マシン)には適していません。
Rvmが$HOME
にインストールされる場合、通常どおりgemがそこにバンドルされます。
他のユーザーが$HOME
ディレクトリにrvm
をインストールしているため、動作に一貫性がない可能性があります
私の場合、既存の$BUNDLE_PATH
バンドルするユーザーに書き込み権限がない。
Your user account isn't allowed to install to the system RubyGems
bundle install --path vendor/bundle
最近、同じ問題に直面しました。 rvm
を使用します
Sudo chown -R $USER ~/.rvm
助けてくれた