在任何来源中都找不到rake-0.9.2

时间:2011-09-29 23:25:32

标签: ruby rake bundler

我不知道为什么要这个?

$ which rake
/Users/kamilski81/.rvm/gems/ruby-1.9.2-p290@depot/bin/rake
[~/Sites/work/depot, kamilski81@mac]
$ /Users/kamilski81/.rvm/gems/ruby-1.9.2-p290\@depot/bin/rake test
Could not find rake-0.9.2 in any of the sources
Run `bundle install` to install missing gems.

在我执行“捆绑安装”后,我得到:

Installing sqlite3 (1.3.4) with native extensions 
Installing turn (0.8.2) 
Installing uglifier (1.0.3) 
Updating .gem files in vendor/cache
Your bundle is complete! It was installed into ./rake

并且我的所有宝石都安装在我的根目录的./rake中......非常讨厌。

3 个答案:

答案 0 :(得分:7)

看起来您在某个时候键入了bundle install rake

bundle命令不会安装gem的名称。相反,参数“rake”是您将捆绑的宝石安装到的文件夹的名称。

如果查看当前项目文件夹,您将看到一个隐藏的.bundle目录。其中的配置文件会跟踪您如何设置捆绑软件安装选项,并记住您下次运行捆绑软件安装时设置的目录。最简单的方法是从该配置文件中删除该选项,并在没有第三个参数的情况下重新运行bundle install

此问题的第二部分是不同的捆绑包将安装自己版本的命令,例如rake。要运行正确的版本,请让捆绑程序通过运行bundle exec rake而不是rake来为您运行。

答案 1 :(得分:1)

我添加:

source 'https://rubygems.org'

我的Gemfile解决了这个问题。出于某种原因我之前删除了它。感谢Andrew最初提供的.bundle目录。

答案 2 :(得分:1)

添加--development参数一次,以便从rubygems.org安装所有开发依赖项。

所以如果你想跑:

bundle exec rake build

改为运行:

bundle --development exec rake build

您将看到正在安装的任何缺少的开发依赖项,包括rake 0.9.2

此后,重建时可以删除--development参数。

请注意,此方法还意味着您需要将source http://rubygems.org添加到您编写的每个gem中。