运行ruby脚本时Bundler问题

时间:2017-10-17 00:59:22

标签: ruby bundler

我正在尝试从ruby脚本中运行一些旧的ruby脚本(使用旧的ruby版本)。这是一个程序:

old_ruby187.rb

#!/usr/ruby/1.8.7/bin/ruby
puts "Hello"

new_ruby230.rb

#!/usr/ruby/2.3.0/bin/ruby
require "rubygems"
require "bundler"
Bundler.setup       # Code works if I comment this line
puts `old_ruby187.rb`

我遇到了捆绑器加载错误。如果我执行./new_ruby230.rb,则会为最后一个puts命令行发出错误。:

'require': no such file to load -- rubygems (LoadError)

如果我只评论Bundler.setup并运行它,它就可以了。不确定Bundler.setup是否尝试加载system来电。我需要在new_ruby230.rb脚本中使用的其他gem的bundler。

感谢任何帮助。

更新(02/22/2018):
我在调用旧的ruby脚本时最终使用了ssh。类似的东西:

new_ruby230.rb

#!/usr/ruby/2.3.0/bin/ruby
require "rubygems"
require "bundler"
require "socket"
Bundler.setup
puts `ssh #{Socket.gethostname} old_ruby187.rb` # this worked!

1 个答案:

答案 0 :(得分:0)

非常确定你不应该要求像这样的rubygems。 Bundler可以管理你的宝石。删除那个require语句(需要" ruby​​gems")你应该好好去。