web-dev-qa-db-ja.com

gemがインストールされていても、RVMバンドルのインストールでGemエラーが見つかりません

現在Bundler gemがインストールされていても、次のエラーが表示されます($ gem listを実行すると表示されます)。

ERROR: Gem bundler is not installed, run `gem install bundler` first.

RVMを使用していますが、$ PATHは次のとおりです。

/Users/cjstingl/.rvm/gems/Ruby-1.9.2-p290@Rails3tutorial2ndEd/bin:
/Users/cjstingl/.rvm/gems/Ruby-1.9.2-p290@global/bin:
/Users/cjstingl/.rvm/rubies/Ruby-1.9.2-p290/bin:
/Users/cjstingl/.rvm/bin:
/Users/cjstingl/.bin:
/usr/local/sbin:
/usr/local/Cellar/php/5.3.6/bin:
/usr/local/share/python:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin

また、これは私のgem envです

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - Ruby VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0]
  - INSTALLATION DIRECTORY: /Users/cjstingl/.rvm/gems/Ruby-1.9.2-p290@Rails3tutorial2ndEd
  - Ruby EXECUTABLE: /Users/cjstingl/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
  - EXECUTABLE DIRECTORY: /Users/cjstingl/.rvm/gems/Ruby-1.9.2-p290@Rails3tutorial2ndEd/bin
  - RUBYGEMS PLATFORMS:
    - Ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/cjstingl/.rvm/gems/Ruby-1.9.2-p290@Rails3tutorial2ndEd
     - /Users/cjstingl/.rvm/gems/Ruby-1.9.2-p290@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => false
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "-n/usr/local/bin --no-ri --no-rdoc --no-user-install"
  - REMOTE SOURCES:
     - http://rubygems.org/

また:bundle -vコマンドを使用しても同じエラーが返されます

RVMを内破して再インストールしてみましたが、動作しないようです。私は困惑していて、どんな助けもありがたいです。

55
cstingl

.bashrcに次のもの(.bash_profileから取得)を追加すると、修正されました。

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
94
Roman

RVM 1.10.3のクリーンインストールでも同じ問題が発生しました。再インストール後、Bundlerがインストールされ、<gemset>/binディレクトリが$ PATHに追加されていることに気付きましたが、これらのbinディレクトリは実際には存在しません。これは単なるRVMのバグだと思います。

簡単な修正として、bundleバイナリを、存在するRVM binディレクトリに手動でコピーしました。それは私の問題を修正したようです:

$ cd ~/.rvm
$ cp gems/Ruby-1.9.3-p0/gems/bundler-1.0.21/bin/bundle rubies/Ruby-1.9.3-p0/bin/

これらのパスのRubyとBundlerのバージョンはおそらく異なるでしょう。


上記のソリューションは動作しますが、それは私を悩ませていたので、私はそれをrvmの人たちに渡しました。 〜/ .gemrcファイルは、次の行でgemの場所をオーバーライドしていたことがわかりました。

- "gem" => "-n/usr/local/bin"

それを削除すると修正されました。完全なスレッドについてはこちらをご覧ください: https://github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267

19
Rick Fletcher

私も同様の問題を抱えており、その答えは(少なくとも私にとっては)試行錯誤の末に途方もなく簡単でした。

これは間違いなくパスの問題であり、@ gamecreatureがパスの順序について言及していることは、私にとって非常に重要な手がかりでした。

どのように発生したのかわかりませんが、PATHエクスポートの最初の項目として$HOME/.rvm/binがありました。

このディレクトリはrvmファイルのソースを介して正しい順序でパスに追加されるため、これは不要です。

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

したがって、私の修正は、PATHエクスポートから$HOME/.rvm/binを削除することだけでした。

複数の初期化ファイル(.bashrc、.bash_profile、.profile)がある場合は、 rvmトラブルシューティングページ のアドバイスに従ってください:

本質的にPATHのカスタマイズ後に、プロファイルファイル(.bash_profile/.bashrc/.zshrc)でrvmファイルのソースlastが発生することを確認します。関数またはエイリアス。

ただし、PATH定義の残りの部分をチェックして、優先される重複が宣言されていないことを確認することもお勧めします。

10
Patrick Smith

同様の問題がありました。プロジェクト固有の.rvmrcファイルがないことが判明しました。を使用して作成しました

rvm --rvmrc --create 1.9.3@my_project_name

私のプロジェクトディレクトリ

これで問題が解決しました

この下まで来て、まだ頭を壁にぶつけている場合...

私の問題は、rvm install 1.8.7インストールの後半で失敗しましたが、成功したようです(Ruby 1.8.7でgemsetsを作成できました)

しかし、$GEM_HOMEはインストールスクリプトの後半に設定されますが、設定されていないため、rvmはgemの適切な場所を探していませんでした。

rvm reinstall 1.8.7そして、エラーを注意深く調べました。

私をひっくり返したのは、このスレッド: https://groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion

これがあなたの問題かどうかを確認するには、次を実行します。

echo $GEM_HOMEまたはgem envまたはrvmインストールログを確認します(上記のリンクを参照)

GemパスにRubyバージョンとgemset名が表示されていますか?そうでない場合は、rvmのインストールが失敗した可能性があります。

5
jbaldo

それがあなたの問題の原因かどうかはわかりません。しかし、私は同様の問題を抱えていました。その理由は、RVM環境が正しくなかったためです。

私は2人のユーザーがいましたが、1人は機能していましたが、機能していませんでした。作業中のユーザーは、次のバンドルスクリプトを使用しました。 (からの出力:どのバンドル)

/home/rvm/.rvm/gems/Ruby-1.9.3-p0/bin/bundle

間違ったrvm-installationユーザーが使用しました:

/home/user/.rvm/bin/bundle

これは、$ PATHの順序が間違っているためです。 .rvm/gems/Ruby -.../binパスは、。/ rvm/binパスの前に配置する必要があります。

私の状況では、$ PATH変数を別のユーザーのrvmに設定したことが原因でした。ユーザーのRVMにシンボリックリンクを追加し、パスを次から変更することで問題を修正しました。

/home/rvm/.rvm/bin

/home/user/.rvm/bin

上記のコードが機能しない場合は、rvmをロードした直後にパスを手動で調整できます。

4
gamecreature

これを試してください: https://rvm.io/integration/gnome-terminal/

それは、起動時に実行されるプロファイルについて、私はubuntu 12.10を実行していて、それが機能していると言います。あなたがしなければならないことは、端末プロファイル設定(タブタイトルとコマンド)で「ログインシェルとしてコマンドを実行」を設定することだけです。

誰かの時間を節約できることを願っています。

4
mArtinko5MB

あなたは何を知っている、これは明らかにあなたのPATH変数の問題です。

which bundle/usr/local/rvm/gems/Ruby-1.9.3-p194/bin/bundleのようなものの代わりに/usr/local/rvm/bin/bundle

ヒント:

.zshrcファイルでPATH = some explicit listを使用しただけですか?

次に、これをPATH = $ PATH:some listに変更する必要があります

3
Minqi Pan

これは、新しい空のgemsetに切り替えてgem install bundler。原因は、シェルが最後に使用したbundle実行可能ファイルを「記憶」していることです。これを修正するには(少なくともbash- descendantsで):

hash -r
3
Matt Mitchell

同じセットアップで複数のマシンにRVMをインストールし、あるマシンではRVMに問題があり、別のマシンではこれらの問題が発生していないので、エラーの少ない、より良いものを探すことにしました。

見つけて、rbenvに切り替えました。これは、RVMよりもずっと単純です。

そして、rbenvのREADMEが示すように:

rbenvは…

  • グローバルRubyバージョンをユーザーごとに変更します。
  • プロジェクトごとRubyバージョン)のサポートを提供します。
  • Ruby versionを環境変数で上書きします。

Rvmとは対照的に、rbenvは…

  • シェルにロードする必要があります。代わりに、rbenvのshimアプローチは、$ PATHにディレクトリを追加することで機能します。
  • cdのようなシェルコマンドをオーバーライドするこれは危険であり、エラーが発生しやすくなります。
  • 構成ファイルを用意する Rubyのどのバージョンを使用するかを除いて、構成するものは何もありません。
  • Rubyのインストール自分でビルドしてインストールすることができますRuby自分で、または Ruby-build を使用してプロセスを自動化します。
  • gemsetsの管理Bundler は、アプリケーションの依存関係を管理するためのより良い方法です。まだBundlerを使用していないプロジェクトがある場合は、 rbenv-gemset プラグインをインストールできます。
  • 互換性のためにRubyライブラリへの変更が必要です。 rbenvのシンプルさは、$ PATHにある限り、 nothing else それについて知る必要があります。
  • プロジェクトに切り替えたときに警告を表示します。 rbenvは、任意のコードを実行する代わりに、各プロジェクトからバージョン名のみを読み取ります。 「信頼」するものは何もありません。

したがって、私に尋ねたら、RVMをダンプしてrbenvに切り替えてください。

3
Koen.

私は、わずかに異なる理由で非常に類似した問題を抱えていました。ホームディレクトリに.gemrcファイルが古いRubyセットアップから残っていて、古いファイルを削除するときに見逃していました。gemがこのファイルの設定とrvm設定を混同していたようです。それ(および古い場所にインストールされたいくつかのファイル)、すべてが正常に機能しました。

2
Daniel James

今日、同じ問題に出くわしました。この問題を解決するために使用したアプローチは次のとおりです。

1)実行

cap Shell

同じマシンで通常cap cap deployを実行します。次に実行する

env | sort

これにより、リモートサーバーでコマンドが実行されます。出力をコピーして、ローカルテキストファイルに貼り付けます。 capenv.txt

2)同じリモートサーバーにSSH接続し、同じコマンド、つまりenv |を実行します。ソート。これをテキストファイルとしてローカルに保存します。 sshenv.txt

3)2つのファイルを比較し、capenv.txtにないsshenv.txtの内容を確認します。これは、問題が発生している可能性が高い場所です。

< ++CAP ++
< _=/bin/sh
---
> ++ SSH ++
> __array_start=0
14a15
> PS1=\[\e]2;tracker@charlotte\a\e[0;31m LIVE:\u@\h \w> \e[0m
18d18
< rvm_env_string=Ruby-1.9.3-p194
21d20
< rvm_Ruby_string=Ruby-1.9.3-p194
27c26,28
< USER=tracker
\ No newline at end of file
---
> USER=tracker
> USES_BASHRC=bashrc
> _=/usr/bin/env

4)シェルインタープリターがbashに設定されていないことにすぐに気付きました。これは追加することで修正できます

set :Shell, '/usr/bin/bash'

deploy.rbファイルに。これで問題が解決しました

2
gordonbanderson

Ruby 1.9.3 by rvm.git octopressが完了したら、この「rvm use 1.9.3」のように$ path_of_git/.rvmrcを編集します。その後、「cd ..;」のコマンドを実行します。 cd $ path_of_git」。その後、.rvmrcを信頼するかどうかを尋ねられます。「y」と入力して.rvmrcファイルを機能させます。

2
user1417226

Ruby使用したいバージョン:

$ rvm use 1.9.2-p290
Using /Users/myname/.rvm/gems/Ruby-1.9.2-p290
1
Erik Shilts

私のラップトップの1つで同じ問題に遭遇しました(私がバンドラーをインストールし続けると、rvmはそれを認識しません)。まだRails noob。だったときにRVMを間違ってインストールした可能性があります。上記のソリューションを試しましたが、うまくいきませんでした。それをいじってから、あきらめて削除しました。 RVMとそれを再インストールします。それは、どこかに深くネストされた奇妙な構成の問題が原因であると考えました。

RVMを削除します。

rvm implode

RVMを再度インストールします。

curl -L https://get.rvm.io | bash -s stable --Rails
rvm reload

私は古いRails仕事のためのプロジェクトに取り組んでいるので、ree-1.8.7-2012.02をインストールしなければなりませんでした

rvm install ree-1.8.7-2012.02

もちろん、マーフィーの法則は依然として適用されます。 Xccがgccと一緒にインストールされていても、ラップトップが壊れていないCコンパイラを見つけられないという別の問題に遭遇しました。私の最後のステップはhttps://github.com/kennethreitz/osx-gcc-installerに行き、パッケージをインストールしてreeを再インストールしました。

この最後の手段が誰かを助けることを願っています。幸運を!

0
Jeff

私もこの問題を抱えていました。 gemsetを指定して問題を修正しました。

$ bundle install
ERROR: Gem bundler is not installed, run `gem install bundler` first.

$ rvm gemdir
/usr/local/rvm/gems/Ruby-1.9.3-p194

$ rvm gemset list

gemsets for Ruby-1.9.3-p194 (found in /usr/local/rvm/gems/Ruby-1.9.3-p194)
   global
   Rails32

$ rvm gemset use Rails32

Using Ruby-1.9.3-p194 with gemset Rails32

$ Rails s

Could not find rake-10.0.4 in any of the sources

Run `bundle install` to install missing gems.

$ bundle install

Fetching gem metadata from https://rubygems.org/.......
{And voila! it worked!}
0
MorningHacker

私の設定では、Apacheが実行するユーザーをrvmグループに追加しました

usermod -a -G rvm www-data
0
coneybeare

(rvm 1.15.1)に切り替えたディレクトリに空の_.rvmrc_ファイルがあった場合、同じ問題が発生しました。明らかに、このエラーには多くの原因があります

0
mloughran