代码之家  ›  专栏  ›  技术社区  ›  antpaw

找不到耙子

  •  11
  • antpaw  · 技术社区  · 15 年前

    嘿,我玩过 bundler 还有一些宝石,现在我不能用了 rake 不再

    如果我执行简单的db:migrate,我会得到以下错误:

    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>'
    

    但如果我有,Rake就列在名单上了 gem list . 我使用的是Rails 3.0.0beta4、Bundler 1.0.0.beta.5和Ruby1.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 回复  |  直到 13 年前
        1
  •  6
  •   petabyte    15 年前

    我很确定您没有正确设置路径环境。 /usr/local/lib/ruby/site_ruby/1.9.1/ 是Mac OS X附带的Ruby解释器的默认包文件夹——垃圾。当你说你(假设)使用Ruby1.9.2dev时,这个路径是错误的。请放弃 export 在shell中并发布结果。另外,请发布Ruby1.9.2dev和捆绑文件夹的安装-/pathes。

    编辑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 f.e一起工作,您必须更改rails应用程序的配置,以显式地使用自定义bundler gem环境。我前段时间读到rails3将包含这些选项;如果是这样(我不知道rails3),请检查您的那些命令。

    注意:把邦德勒放在一边,用RVM代替。它的功能更强大,更成熟,并且具有更大的灵活性(尤其是在与gemes一起处理多个口译员时)。

        2
  •  12
  •   Steve Ross    15 年前

    仅供参考,如果您使用MacPorts安装Ruby1.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”

    就是这样…花了很长时间才发现,但是,效果很好

        3
  •  2
  •   MikroDel    13 年前

    我对房车也有同样的问题 ("warning: already initialized constant RAKEVERSION") 等等。

    我正在使用gemeset(“rails”)进行开发,但我注意到 BUNDLE_PATH 不是指这个宝石 (.rvm/gems/ruby-1.9.2-p0@rails); 相反,它指向了全球 (.rvm/gems/ruby-1.9.2-p0).

    我修理了 捆绑路径 要使用轨道,宝石和耙子现在可以正常工作了。希望它有帮助。

        4
  •  0
  •   rogerdpack    15 年前
    推荐文章