2

このRakeエラーが発生するのはなぜですか。

$ rake --version
/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find rake (>= 0) amongst [] (Gem::LoadError)
    from /Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin/rake:18:in `<main>'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'

以下の場合があります。

$ gem list

*** LOCAL GEMS ***

bundler (1.1.3)
rake (0.9.2.2)
rubygems-bundler (1.0.2)
rvm (1.11.3.3)
$ which rake
/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin/rake

具体的には、このエラーメッセージはバグに起因するのでしょうか、それとも構成の問題に起因するのでしょうか(後者の場合、どの手順で修正できるのでしょうか)。


更新:要求に応じて追加の端末出力:

$ which gem
/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/bin/gem
$ whereis rake
/usr/bin/rake
$ echo $PATH # I've edited the output as one item per line for easier reading
/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin:
/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194@global/bin:
/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/bin:
/Volumes/Data/sampablokuper/.rvm/bin:
/opt/local/bin:
/opt/local/sbin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/texbin:
/usr/X11/bin:
/usr/local/git/bin:
/Library/Application Support/VMware Fusion:
/Volumes/Data/sampablokuper/bin:
/Volumes/Data/sampablokuper/.rvm/bin
$ type rvm | head -n1
rvm is a function
$ rvm info

ruby-1.9.3-p194:

  system:
    uname:       "Darwin spksmb.lan 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386"
    bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)"
    zsh:         "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)"

  rvm:
    version:      "rvm 1.14.3 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "9 hours 36 minutes 53 seconds ago"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.3p194"
    date:         "2012-04-20"
    platform:     "x86_64-darwin10.8.0"
    patchlevel:   "2012-04-20 revision 35410"
    full_version: "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin10.8.0]"

  homes:
    gem:          "/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194"
    ruby:         "/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194"

  binaries:
    ruby:         "/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/bin/ruby"
    irb:          "/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/bin/irb"
    gem:          "/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/bin/gem"
    rake:         "/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin/rake"

  environment:
    PATH:         "/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin:/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194@global/bin:/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/bin:/Volumes/Data/sampablokuper/.rvm/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin:/usr/local/git/bin:/Library/Application Support/VMware Fusion:/Volumes/Data/sampablokuper/bin"
    GEM_HOME:     "/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194"
    GEM_PATH:     "/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194:/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194@global"
    MY_RUBY_HOME: "/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194"
    IRBRC:        "/Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/.irbrc"
    RUBYOPT:      ""
    gemset:       ""
4

2 に答える 2

1

sysctl -a | grep user.cs_path「whereis」バイナリは、実際の $PATH 変数ではなく、user.cs_path 変数 (「参考文献」を参照) によって設定された一連のシステム デフォルト パスをチェックします。したがって、報告される 'rake' の場所、実際に使用されているパスのセットではなく、常にそのパスのセットにあるものになります。

実行してください

which rake

どのレーキが実際に使用されているかを確認します。/Users/me/.rvm/gems/ruby-1.9.3-p194@global/bin/rake などのパスではなく /usr/bin/rake がレポートされる場合は、間違いなく何かが間違っています。

含めてください

rvm info

出力し、それを確認してください

type rvm | head -n1

「rvmは関数です」と報告します。それ以外のものが報告されている場合は、インストールが台無しになっています。この場合、 を使用して rvm インストールを削除しrvm implode、完全にログアウトしてから、RVM を完全に再インストールする必要があります。はい、ログアウト手順は重要です。

于 2012-06-22T13:05:14.433 に答える
1

Gemfile質問に示されているコマンドを実行していたディレクトリに、次の内容で呼び出されるファイルが存在するために、問題が発生しているように見えます。

source 'https://rubygems.org'

gemspec

そのファイルを削除または名前変更すると、次のようになります (やった!):

$ rake --version
rake, version 0.9.2.2

対照的に、Gemfile を保持しmyproject.gemspec、ディレクトリからファイルを削除または名前変更すると、次のようになります。

$ rake --version
/Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler/dsl.rb:48:in `gemspec': There are no gemspecs at /Volumes/Data/spikes/myproject. (Bundler::InvalidOption)
    from /Volumes/Data/spikes/myproject/Gemfile:4:in `evaluate'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler/dsl.rb:7:in `instance_eval'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler/dsl.rb:7:in `evaluate'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler/definition.rb:18:in `build'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler.rb:135:in `definition'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.4/lib/bundler.rb:123:in `load'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194@global/gems/rubygems-bundler-1.0.3/lib/rubygems-bundler/noexec.rb:41:in `candidate?'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194@global/gems/rubygems-bundler-1.0.3/lib/rubygems-bundler/noexec.rb:60:in `setup'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194@global/gems/rubygems-bundler-1.0.3/lib/rubygems-bundler/noexec.rb:75:in `<top (required)>'
    from /Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /Volumes/Data/sampablokuper/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /Volumes/Data/sampablokuper/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:9:in `<main>'

の動作がrake --versionこれらのファイルの存在/不在/内容によって非常に強く影響を受けるという事実は、私にはバグのように思えます。それに応じてバグ レポートを提出します。

于 2012-06-22T18:36:11.137 に答える