路径与bundler的问题,是改变还是不改变?

时间:2011-01-28 11:58:30

标签: ruby-on-rails bundler

我正在尝试使用bundler设置一个新的rails 3项目,但我遇到了与bundler有关的问题。 我正在使用ruby 1.8.7的rails 3.0.3

尝试时

$ bundle exec rake db:migrate

我收到以下错误

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/dependency.rb:52:in `initialize': Valid types are [:development, :runtime], not nil (ArgumentError)

当我尝试在终端中发出常规rake任务时,同样如此 $ rake -T,即只有这样我才会收到错误:

uninitialized constant Bundler /Users/daniel/cc/contributie_data/Rakefile:4 (See full trace by running task with --trace)

我一直在阅读有关此问题的其他一些问题,因此我了解到它与路径有关...

$ which rake 的/ usr /斌/耙

$ which ruby 的/ usr / local / bin中/红宝石

有人能给我一些关于这里会发生什么的建议吗? 更重要的是,我怎么能让捆绑者用耙子玩好...

感谢您对此提出任何意见,非常感谢!

4 个答案:

答案 0 :(得分:3)

我得到了同样的错误(我正在使用rvm)。事实证明,在我的.profile和.bashrc中都有以下声明:

export PATH=~/.gem/ruby/1.8/bin:$PATH

因此采用此路径而不是rvm路径。我评论了这些线,现在一切正常

答案 1 :(得分:3)

尝试删除Gemfile.lock。它通常有助于

  

有效类型是[:development,:runtime],而不是nil

错误。

答案 2 :(得分:2)

哦,伙计,我今天通过这个。

我做了一次更新,我的rvm破了 - 开始抛弃丢失的脚本等。我刚刚完成了重新安装rvm和我的红宝石。

它不是很好,需要一段时间,但这是我恢复工作状态所做的。

从这里开始。 How can I remove RVM (Ruby Version Manager) from my system?结束并安装新鲜的。

答案 3 :(得分:1)

我也面临同样的问题,并在此链接github:bundler

的帮助下解决了这个问题

修改了文件lib/bundler/resolver.rb中位于bundler gem内的一行。从行*

中删除d = Gem::Dependency.new(base.first.name, *reqs)标记 像这样:

reqs = [dep.requirement.as_list, base.first.version.to_s].flatten.compact
d = Gem::Dependency.new(base.first.name, *reqs)

reqs = [dep.requirement.as_list, base.first.version.to_s].flatten.compact
d = Gem::Dependency.new(base.first.name, reqs)

*直接修改gem的内容不是一个好习惯。发布此信息只是为了说明解决此问题的另一种方法。