在子进程中执行binstub

时间:2014-12-21 09:55:09

标签: ruby gem bundler

我想在我自己的gem中执行其他gem的二进制文件。但是为什么,当我执行Gem.bin_path时,我在bin/rspec遇到了错误(这里的rspec没有意义。执行哪个binstub并不重要)

/home/vagrant/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/rubygems_integration.rb:309:in `block in replace_bin_path': undefined method `name' for nil:NilClass (NoMethodError)
    from /home/vagrant/works/test/bundler-problem/chef/bin/knife:16:in `<main>'

如果我直接执行chef/bin/knife,它会成功而不会失败。我将此问题隔离到存储库https://github.com/pandora2000/bundler-problem

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我找到了http://www.rakefieldmanual.com/fascicles/001-clean-environment.html链接并用Bundler.with_clean_env

解决了问题