为什么我收到此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: ""
答案 0 :(得分:1)
'whereis'二进制文件检查由user.cs_path变量(参见sysctl -a | grep user.cs_path
)设置的一组系统缺省路径,而不是实际的$ PATH变量。因此,报告的'rake'位置总是是在该组路径中发生的任何事情,并且不正在使用的实际路径,除非确实恰好是< em>仅 rake安装在系统上,因此不会出现在$ PATH中。
请运行
which rake
查看实际使用的rake。如果它报告/ usr / bin / rake而不是某些路径,例如/Users/me/.rvm/gems/ruby-1.9.3-p194@global/bin/rake那么肯定有问题。
请包含
rvm info
输出并确保
type rvm | head -n1
报告“rvm是一个函数”。如果它报告的不是其他内容,那么您的安装会搞砸,在这种情况下,您应该使用rvm implode
删除您的rvm安装,完全注销,然后完全重新安装RVM。是的,注销步骤很重要。
答案 1 :(得分:1)
由于在我执行问题中显示的命令的目录中存在一个名为Gemfile
的文件,看起来好像发生了问题,其中包含以下内容:
source 'https://rubygems.org'
gemspec
删除或重命名该文件会产生以下结果(yay!):
$ 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
的行为受到这些文件的存在/不存在/内容的强烈影响这一事实确实让我感到错误,我将相应地提交错误报告。