有没有一种方法可以在不加载rubygems的情况下调用ruby1.9?

8
所以,Ruby 1.9非常好,因为它会自动require rubygems。因此,当您调用require 'somegem'而没有先要求rubygems时,它将起作用,这通常很棒。
但是,我有很多使用Ruby的shell脚本,它们通常不依赖于rubygems。Shell工具应该可以立即运行,为了无谓地加载rubygems而进行大量磁盘操作并散布小文件,这是一个主要障碍。
我希望能够告诉Ruby,在运行这些shell脚本时跳过加载gems。理想情况下,就像在shebang行中使用#!ruby --no-rubygems这样的东西。
有这样的东西吗?或者可能有编译选项告诉Ruby需要手动require rubygems吗?
1个回答

6

是的,您可以使用--disable-gems选项。

请注意,能否在shebang行中传递选项取决于您的操作系统。有些操作系统根本不支持传递选项,有些仅支持传递一个选项或参数。

因此,如果您有例如:

#!/usr/bin/env ruby

那么你很可能无法将该选项附加到末尾。如果你将其更改为

#!/usr/local/bin/ruby --disable-gems

你已经在脚本中硬编码了 Ruby 二进制文件的位置。

当然,有一些操作系统根本不解释 shebang 行。毕竟,它们从未在任何标准中指定,并且甚至没有得到适当的文档记录。

另一种选择是设置 RUBYOPT 环境变量在你的 shell 环境中,并简单地切换到一个不带 RUBYOPT(或者将其设置为 -w,我个人最喜欢的选项)的不同环境进行 Ruby 开发。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接