我正在尝试从ruby脚本中运行一些旧的ruby脚本(使用旧的ruby版本)。这是一个程序:
#!/usr/ruby/1.8.7/bin/ruby
puts "Hello"
#!/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。类似的东西:
#!/usr/ruby/2.3.0/bin/ruby
require "rubygems"
require "bundler"
require "socket"
Bundler.setup
puts `ssh #{Socket.gethostname} old_ruby187.rb` # this worked!
答案 0 :(得分:0)
非常确定你不应该要求像这样的rubygems。 Bundler可以管理你的宝石。删除那个require语句(需要" rubygems")你应该好好去。