rails s:在任何来源中都找不到rake-10.4.2(Bundler :: GemNotFound)

时间:2015-01-10 17:36:03

标签: gem rake rvm

当我用:

启动rails时
$ rails s

我明白了:

/Users/snowcrash/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound)

所以,我跑了bundle install

$ bundle install
Using rake 10.4.2

但是gem list rake给出了:

*** LOCAL GEMS ***

rake (10.1.0, 10.0.4)

为什么我没有安装rake 10.4.2

另外,当我运行bundle check时,它会给我:

The Gemfile's dependencies are satisfied

这似乎不正确。为什么呢?

====更新

我通过执行以下操作修复了rake的问题:

gem install rake

但为什么我必须手动安装它?我认为那是Bundler的工作。

尝试再次启动rails给了我另一个问题:

Could not find multi_json-1.10.1 in any of the sources (Bundler::GemNotFound)

显然,这里存在一些潜在的问题。有什么建议吗?

4 个答案:

答案 0 :(得分:15)

我在使用rbenv进行ruby 2.2.0安装时遇到了这个问题。通过反复试验确定。

我尝试过gem install rake,但这并没有解决它。 所以我做了:

gem uninstall rake
rbenv global 2.1.1
rbenv rehash
rbenv uninstall rake #this time gives error "rake is a default gem"
rbenv global 2.2.0
rbenv rehash
gem install rake
rails s #works this time

我的期望是在PATH或类似的地方可能存在冲突,并通过完全删除解决了

我以前在multi_json中遇到过这个错误。通过手动安装gem install multi_json

来修复它

答案 1 :(得分:9)

我认为你的宝石与项目捆绑在一起(在项目.bundle / config中定义了BUNDLED_PATH)。

如果您需要运行捆绑版本的rails服务器,则必须输入console

bundle exec rails s

或者,您也可以通过

生成捆绑的gem编辑器的bin存根
bundle --binstubs

并运行生成的存根

bin/rails s

答案 2 :(得分:0)

我只需更正enable脚本。

cd /opt/rh/ruby-22
rpm -q -f enable
rh-ruby22-runtime-2.0-6.el6.x86_64
diff enable~ enable
1c1
< export PATH=/opt/rh/rh-ruby22/root/usr/bin${PATH:+:${PATH}}
---
> export PATH=/opt/rh/ruby/root/usr/local/bin/:/opt/rh/rh-ruby22/root/usr/bin${PATH:+:${PATH}}
scl enable rh-ruby22 bash

http://www.softwarecollections.org/

答案 3 :(得分:-3)

cd /usr/share/metasploit-framework/

然后使用以下命令

bundle install