Rails 3.2 gem をバンドルするたびに、パスワードを要求されます。
バンドルされている RubyGems をシステムにインストールするには、パスワードを入力してください
これは、特に 1 つのプロジェクトに複数回バンドルする場合に、非常に厄介です。ただし、gem ディレクトリを誰でも読み取り可能に設定すると、(!) rails コマンドを実行すると常に警告が表示されます。もちろん、これはさらに面倒です。
どうすればこれをオフにできますか?
Rails 3.2 gem をバンドルするたびに、パスワードを要求されます。
バンドルされている RubyGems をシステムにインストールするには、パスワードを入力してください
これは、特に 1 つのプロジェクトに複数回バンドルする場合に、非常に厄介です。ただし、gem ディレクトリを誰でも読み取り可能に設定すると、(!) rails コマンドを実行すると常に警告が表示されます。もちろん、これはさらに面倒です。
どうすればこれをオフにできますか?
マルチユーザー インストール タイプを使用して RVM をインストールした場合を除き、RVM ではなく、システム ルビーと絶対に関係があります。それを行ってもパスワードの入力を求められる場合は、記載されているドキュメントの内容に厳密に反してroot としてインストールし、インストーラーが作成する「rvm」グループに一般ユーザーが追加されていません。(注: これは、シングル ユーザー インストールではなく、マルチユーザー インストールが必要であるという考えに基づいています。シングル ユーザー インストールが必要な場合は、インストーラーを実行するときに sudo をプレフィックスとして付けないでください。)
RVM をリッピングし、ログアウトしてから再度ログインし (環境を完全に新しく再初期化するため)、root としてではなく通常のユーザーとしてインストーラー コマンドを再実行し、ドキュメントの指示に従って「sudo」をプレフィックスとして付けます。
RVM をインストールしていない場合は、 https: //rvm.io のドキュメントに従って、シングル ユーザー インストールまたはマルチユーザー インストールとしてインストールします。この場合、RVM がインストールされていない場合は、Billy Chan が上で説明した方法で修正できますが、定期的に実行する必要があるコマンドの正確なセット (gem bin 名) を特定し、エントリを追加することで、ルールを少し厳しくすることをお勧めします。 sudoers ファイル (visudo) にあるもの。
現在、この問題は、*RVM が制御しないシステム ruby を使用しようとしているか (適切な GEM_PATH、RUBY_* 環境変数などを設定することでアクセスできるようにするだけです)、または RVM マルチユーザー インストールが正しく行われていないことを示しています。
これは、gem をシステムの下にインストールするか、ユーザーの下にインストールするかによって異なります。現在のユーザーの下にある場合は、バンドラーの構成を調整することで、このメッセージと質問をオフにすることができます。
プロジェクトのファイル.bundle/config
に行を追加します
BUNDLE_DISABLE_SHARED_GEMS: '1'
したがって、構成ファイル全体は次のようになります
---
BUNDLE_WITHOUT: development:test
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_PATH: /home/youruser/gems/
I had this problem with my rails installation. A quick workaround for this is to skip bundle install during project creation like so:
rails new webapp -B
And then you can do:
cd webapp/
mkdir -p vendor/bundle
bundle install --path vendor/bundle
Hope that helps future queries.
最良の方法:RVMを使用します。gem <any command>
RVMを使用すると、追加せずに実行できますsudo
RVMを使用したくない場合でもsudo
、コマンドの前に追加できます。sudo
また、次の方法で、すべてのコマンドにパスワードを要求しないように設定できます。
$ sudo EDITOR=vim visudo
# or any editor in your system
次に、次の行を追加してドキュメントを編集します
username ALL=(ALL) NOPASSWD: ALL
# Where username must be replaced by your real username in system
それほど安全ではないかもしれませんが、自分のマシンで使用すると便利です。
私のように、上記の2つの方法をすべて一緒に使用できます。