Грабли не могут быть найдены - PullRequest
11 голосов
/ 14 июля 2010

эй, я играл с bundler и некоторыми драгоценными камнями, и теперь я не могу использовать rake больше

, если я делаю простой db: перенос, я получаю эту ошибку:

mac:app antpaw$ rake db:migrate
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:335:in `bin_path': can't find executable rake for rake-0.8.7 (Gem::Exception)
 from <internal:gem_prelude>:282:in `method_missing'
 from /usr/local/bin/rake:19:in `<main>'

но рейк указан, если я сделаю gem list.Я использую рельсы 3.0.0beta4, bundler 1.0.0.beta.5 и ruby ​​1.9.2dev.

РЕДАКТИРОВАТЬ отправил мой export

mac:trickpipe antpaw$ export
declare -x Apple_PubSub_Socket_Render="/tmp/launch-2GMaKT/Render"
declare -x COMMAND_MODE="unix2003"
declare -x DISPLAY="/tmp/launch-5RguhF/:0"
declare -x HOME="/Users/antpaw"
declare -x LC_CTYPE="UTF-8"
declare -x LOGNAME="antpaw"
declare -x OLDPWD="/Users/antpaw"
declare -x PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin"
declare -x PWD="/Volumes/Work HD/localhost/trickpipe"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_AUTH_SOCK="/tmp/launch-N13Ivn/Listeners"
declare -x TERM="xterm-color"
declare -x TERM_PROGRAM="Apple_Terminal"
declare -x TERM_PROGRAM_VERSION="272"
declare -x TMPDIR="/var/folders/-K/-Kf7svFPHrKmLqMXKAGLuU+++TI/-Tmp-/"
declare -x USER="antpaw"
declare -x __CF_USER_TEXT_ENCODING="0x1F5:0:0"
mac:trickpipe antpaw$ which ruby
/usr/local/bin/ruby
mac:trickpipe antpaw$ ruby -v
ruby 1.9.2dev (2010-07-02 revision 28524) [x86_64-darwin10.2.0]

Хорошо, я попробовалпосмотрите, как меняется сообщение об ошибке:

mac:trickpipe antpaw$ export GEM_HOME="/usr/local/lib/ruby/gems"
mac:trickpipe antpaw$ rake about
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:335:in `bin_path': can't find executable rake for rake-0.8.7 (Gem::Exception)
    from <internal:gem_prelude>:282:in `method_missing'
    from /usr/local/bin/rake:19:in `<main>'
mac:trickpipe antpaw$ export GEM_PATH="/usr/local/lib/ruby/gems"
mac:trickpipe antpaw$ rake about
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rake (>= 0) (Gem::LoadError)
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:214:in `activate'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1082:in `gem'
    from <internal:gem_prelude>:213:in `push_gem_version_on_load_path'
    from <internal:gem_prelude>:16:in `gem'
    from /usr/local/bin/rake:18:in `<main>'
mac:trickpipe antpaw$ 

теперь с rvm:

mac:trickpipe antpaw$ rake about
(in /Volumes/Work HD/localhost/rails_app)
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:30: warning: already initialized constant RAKEVERSION
WARNING: Possible conflict with Rake extension: String#ext already exists
WARNING: Possible conflict with Rake extension: String#pathmap already exists
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:402: warning: already initialized constant EMPTY_TASK_ARGS
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:450: warning: already initialized constant EMPTY
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:958: warning: already initialized constant RUBY_EXT
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:962: warning: already initialized constant RUBY
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1031: warning: already initialized constant LN_SUPPORTED
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1240: warning: already initialized constant ARRAY_METHODS
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1243: warning: already initialized constant MUST_DEFINE
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1247: warning: already initialized constant MUST_NOT_DEFINE
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1251: warning: already initialized constant SPECIAL_RETURN
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1257: warning: already initialized constant DELEGATING_METHODS
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1561: warning: already initialized constant DEFAULT_IGNORE_PATTERNS
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1567: warning: already initialized constant DEFAULT_IGNORE_PROCS
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1604: warning: already initialized constant FileList
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1630: warning: already initialized constant EARLY
/Users/antpaw/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/rake.rb:1960: warning: already initialized constant DEFAULT_RAKEFILES
DEPRECATION WARNING: Calling a method in Rails::Application is deprecated, please call it directly in your application constant Trickpipe::Application. (called from method_missing at /Users/antpaw/.rvm/gems/ruby-1.9.2-rc2/bundler/gems/rails-edb5401/railties/lib/rails/application.rb:77)
rake aborted!
stack level too deep

(See full trace by running task with --trace)

Ответы [ 4 ]

12 голосов
/ 15 октября 2010

Просто к вашему сведению, если вы использовали macports для установки ruby ​​1.9.2 У меня возникла такая проблема:

/opt/local/lib/ruby1.9/1.9.1/rubygems.rb:340:in `bin_path': can't find executable rake for rake-0.8.7 (Gem::Exception)
from /opt/local/bin/rake:19:in `<main>'

Исправление - перейти в /opt/local/lib/ruby1.9/gems./1.9.1/specifications и удалите "rake.gemspec"

Вот и все ... потребовалось вечно, чтобы найти это, но все работало нормально

6 голосов
/ 17 июля 2010

Я почти уверен, что вы не правильно настроили окружение вашего пути. /usr/local/lib/ruby/site_ruby/1.9.1/ - это папка пакета по умолчанию для интерпретатора RUby, поставляемая с Mac OS X-crap.Когда вы говорите, что вы (предполагается) используете Ruby 1.9.2dev, этот путь неверен.Пожалуйста, добавьте export в оболочку и опубликуйте результат.Кроме того, пожалуйста, опубликуйте информацию об установке / исправлениях Ruby 1.9.2dev и вашей папки.

Редактирование 1:

Хорошо, быстрое исправление вашей проблемы: export GEM_HOME="/path/where/your/gems/reside" и, возможно, export GEM_PATH="/path/where/your/gems/reside" и, возможно,export PATH="/path/where/your/gems/reside:$PATH".Только в этом порядке!Попробуйте один, когда он все еще не работает, переходите к следующему экспорту.

Обратите внимание, что это должно решить вашу проблему, но для того, чтобы среда Bundler работала с rails, например, вы должны изменить конфигурацию вашего Rails-приложения, чтобы явно использовать вашу пользовательскую среду гемов BUndler.Некоторое время назад я читал, что Rails3 будет включать опции для этого;когда это так (я не знаю Rails3), проверьте эти команды.

Ps: отложите Bundler и используйте вместо него RVM.Он гораздо более мощный, более зрелый и обеспечивает гораздо большую гибкость (особенно при работе с несколькими интерпретаторами в сочетании с наборами гемов).

2 голосов
/ 24 ноября 2010

У меня та же проблема с RVM ("warning: already initialized constant RAKEVERSION") и т. Д.

Я использую Gemset ("rails") для своей разработки, но я заметил, что мой BUNDLE_PATH указывает невместо этого gemset (.rvm/gems/ruby-1.9.2-p0@rails); он указывал на глобальный (.rvm/gems/ruby-1.9.2-p0).

Я исправил BUNDLE_PATH, чтобы использовать рельсы Gemset, и рейк теперь работает правильно.Надеюсь, это поможет.

0 голосов
/ 24 ноября 2010
...