【发布时间】:2018-02-23 03:38:09
【问题描述】:
我正在尝试从 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。
感谢任何帮助。
更新(2018 年 2 月 22 日):
在调用旧的 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!
【问题讨论】:
-
是来自Bundler.setup方法调用的错误栈吗?