【问题标题】:pow says: Bundler::GemNotFound: Could not find rake-0.9.2.2 in any of the sourcespow 说:Bundler::GemNotFound:在任何来源中都找不到 rake-0.9.2.2
【发布时间】:2012-04-24 19:05:21
【问题描述】:

我有一个使用 rails s 运行良好的 rails 应用程序,但是当我尝试使用 pow 加载它时,我收到了这个错误:

Bundler::GemNotFound: Could not find rake-0.9.2.2 in any of the sources
~/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/spec_set.rb:88:in `block in materialize'
~/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/spec_set.rb:82:in `map!'
~/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.0.22/lib/bundler/spec_set.rb:82:in `materialize'
....

奇怪的是,这个应用程序中的 .rvmrc 文件指定了1.9.3-p125

which rake
.../.rvm/gems/ruby-1.9.3-p125/bin/rake

这是我在运行bundle install 时看到的:

Using rake (0.9.2.2) 

FWIW,pow 与另一个使用 1.9.2 和不同 gemset 的非 Rails 项目配合得很好。

谢谢!

【问题讨论】:

    标签: ruby-on-rails rvm rack-pow


    【解决方案1】:

    我猜你更新了 RVM 并遇到了这个已知问题:https://github.com/37signals/pow/issues/271

    最简单的解决方案是在项目目录中运行它:

    rvm env . > .powenv
    

    或者:

    cd /project/path # with .rvmrc
    rvm env > .powenv
    

    【讨论】:

    • 我在运行此命令时收到“无法识别的命令行参数:'.'(请参阅:'rvm usage')”。
    • 您使用的是什么版本的 RVM?更新它,它应该可以正常工作。
    • rvm 1.9.2, "你已经有最新版本了!"当我执行“rvm get latest”时,谢谢。
    • 那是旧的,你需要用rvm get head更新或者只运行安装程序curl -L get.rvm.io | bash -s stable,确保更新后运行一次rvm reload
    • 应该是rvm env -- ruby-1.9.3-p194 > .powenv。如果您有宝石,请输入rvm env -- ruby-1.9.3-p194@gemset > .powenv
    【解决方案2】:

    我从 .rvmrc 更改为 .ruby-version 和 .ruby-gemset 文件时遇到了这个问题。

    将您的 .powrc 文件更改为:

    if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".ruby-version" ] && [ -f ".ruby-gemset" ];然后 源“$rvm_path/scripts/rvm” rvm 使用 `cat .ruby-version`@`cat .ruby-gemset` 菲

    【讨论】:

      【解决方案3】:

      如果您使用的是 RVM,则必须在项目的根目录中添加一个名为“.powenv”的文件,如下所述:

      http://rvm.io/integration/pow

      【讨论】:

        【解决方案4】:

        我一直在使用这个很好地涵盖所有基础的 .powrc:

        if [ -f "$rvm_path/scripts/rvm" ]; then
          source "$rvm_path/scripts/rvm"
        
          if [ -f ".rvmrc" ]; then
            source ".rvmrc"
          fi
        
          if [ -f ".ruby-version" ]; then
            rvm use `cat .ruby-version`
          fi
        
          if [ -f ".ruby-gemset" ]; then
            rvm gemset use --create `cat .ruby-gemset`
          fi
        fi
        

        取自这里https://gist.github.com/nbibler/5307941(感谢nbibler!)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-04-08
          • 2012-04-19
          • 2015-03-04
          • 2014-07-11
          • 2019-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多