2012-06-22 3 views
2

Почему я получаю эту ошибку Rake:Ошибка: "Не удалось найти грабли", но 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 

В частности: это сообщение об ошибке, вызванное ошибкой или с помощью проблемы с конфигурацией (и если последняя, ​​то какие шаги могут ее исправить)?


Update: дополнительный выходной разъем в соответствии с просьбой:

$ 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/[email protected]/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 <[email protected]>, Michal Papis <[email protected]> [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/[email protected]/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/[email protected]" 
    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

Выполнение 'rvm get stable' не помогло. – sampablokuper

+0

Выполнение 'gem update', за которым следует' rvm gemset use global' (необходимо, даже если «глобальный» gemset - единственный, который у меня есть), а затем 'gem cleanup' тоже не помог. – sampablokuper

+0

Можете ли вы также дать «какой камень», просто мы сравниваем яблоки с яблоками? –

ответ

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/[email protected]/gems/rubygems-bundler-1.0.3/lib/rubygems-bundler/noexec.rb:41:in `candidate?' 
    from /Volumes/Data/sampablokuper/.rvm/gems/[email protected]/gems/rubygems-bundler-1.0.3/lib/rubygems-bundler/noexec.rb:60:in `setup' 
    from /Volumes/Data/sampablokuper/.rvm/gems/[email protected]/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 так сильно зависит от наличия/отсутствия/содержимое этих файлов делает удар меня, как ошибка, и я буду подачи отчета об ошибке соответственно.

+0

Отчет об ошибке подан: https://github.com/jimweirich/rake/issues/116 – sampablokuper

1

«WhereIs» Бинарные проверяет набор системных путей по умолчанию, установленные переменной user.cs_path (см sysctl -a | grep user.cs_path) и НЕ фактическая переменная $ PATH. Таким образом, сообщаемое местоположение «rake» будет всегда быть любым, находящимся в этом наборе путей, и не фактическим, если только это действительно rake, установленный на системе, и, таким образом, появляется в $ PATH.

Пожалуйста, запустите

which rake 

, чтобы увидеть, какие грабли фактически используется. Если он сообщает/usr/bin/rake, а не какой-то путь, например /Users/me/.rvm/gems/[email protected]/bin/rake, то, безусловно, что-то не так.

Пожалуйста, включите

rvm info 

выхода и убедитесь, что

type rvm | head -n1 

отчетов "РВМ является функцией". Если он сообщает ничего, кроме этого, ваша установка перепутана, и в этом случае вы должны удалить свою установку rvm с помощью rvm implode, полностью выйти из системы, а затем выполнить полную переустановку RVM. Да, шаг выхода из системы важен.

+0

Спасибо. Я знаю разницу между 'which' и' whereis'. Вывод 'which rake' был включен в мой первоначальный вопрос и все еще присутствует в вопросе. Вывод 'whereis rake', я добавил в ответ на ответ @ alterpub, хотя я лично не мог понять, как это было бы полезно. Будет предоставлена ​​другая информация, которую вы попросили в ближайшее время. – sampablokuper

+0

Теперь я добавил вывод 'rvm info' и' type rvm | head -n1' на вопрос, как просили. Еще раз спасибо за это. – sampablokuper