【发布时间】:2013-12-03 15:22:13
【问题描述】:
我不确定这是属于这里还是其他地方(超级用户?),但无论如何:
我有两个 Ruby 脚本,一个需要 Ruby 2.0 (A),另一个需要 1.8 (B)。 A 需要使用分叉的进程调用 B。 A 是这样的:
require "fileutils"
require "json"
...
`name_of_B`
B 是一个带有 shebang 的可执行脚本,开头如下:
#!/Users/user_name/.rvm/rubies/ruby-1.8.7-p374/bin/ruby
require 'rubygems'
require 'json'
...
我使用RVM 来管理我的 Ruby 版本:
> rvm list
rvm rubies
ruby-1.8.7-p374 [ i686 ]
ruby-1.9.3-p448 [ x86_64 ]
=* ruby-2.0.0-p247 [ x86_64 ]
我运行 A:
> ruby name_of_A
但最终得到:
/Users/jacobevelyn/.rvm/gems/ruby-2.0.0-p247/gems/json-1.8.1/lib/json/ext/parser.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin12.5.0]
对我能做什么有什么想法吗?我不太了解 gems,但似乎 B 试图查看安装在 Ruby 2.0 下而不是 1.8 下的 gems。 (是的,我已经在 1.8 下运行了 gem install json。)显然脚本比这里显示的要复杂,绝对不能移植或组合(这并不意味着我不想要到,这意味着我不能为我的用例),否则我会。
【问题讨论】:
标签: ruby gem rvm ruby-2.0 ruby-1.8