所以ruby 1.9非常好,因为它会自动需要rubygems,因此当你在没有首先需要rubygems的情况下调用require 'somegem'
时它会起作用,这通常很棒。
但我有大量使用ruby的shell脚本,而且它们通常不依赖于rubygems。 Shell工具应该立即运行,并且什么都不加载rubygems是一个主要障碍,主要是因为它涉及一堆磁盘操作和分散的小文件。
我希望能够在运行这些shell脚本时告诉ruby跳过加载gem。理想情况下,在shebang行中就像#!ruby --no-rubygems
一样。
有这样的事吗?或者也许是一个编译选项,它必须手动要求告诉ruby rubygems?
答案 0 :(得分:5)
是的,您可以使用--disable-gems
选项。
请注意,在shebang行中传递选项是否有效取决于您的操作系统。某些操作系统不支持传递选项 ,有些只支持传递一个选项或参数。
所以,如果你有例如
#!/usr/bin/env ruby
然后你很可能无法将选项附加到最后。如果你将OTOH改为
#!/usr/local/bin/ruby --disable-gems
然后,您已将Ruby二进制文件的位置硬连线到您的脚本中。
当然,有些操作系统根本没有解释shebang行 。 (毕竟,它们从未在任何标准中指定,甚至没有正确记录。)
另一种方法是在您的shell环境中设置RUBYOPT
环境变量,只需切换到RUBYOPT
未设置(或设置为-w
,我个人最喜欢的)的其他环境你的Ruby开发。