所以 ruby 1.9 真的很好,因为它会自动需要 rubygems,因此当你调用require 'somegem'
不需要首先需要 rubygems 它就可以工作,这通常很棒。
但我有大量使用 ruby 的 shell 脚本,它们通常不依赖 rubygems。 Shell 工具应该立即运行,而免费加载 rubygems 是一个很大的阻力,主要是因为它涉及到一堆分散的小文件的磁盘操作。
我希望能够告诉 ruby,在运行这些 shell 脚本时,跳过加载 gem。理想情况下,类似#!ruby --no-rubygems
在舍邦线。
有这样的事吗?或者也许有一个编译选项会告诉 ruby rubygems 必须手动需要?
是的,您可以使用--disable-gems
option.
请注意,在 shebang 行中传递选项是否有效取决于您的操作系统。某些操作系统不支持传递选项at all,有些只支持传递one选项或论点。
所以,如果你有例如
#!/usr/bin/env ruby
那么您就不太可能将该选项附加到最后。如果 OTOH 你将其更改为
#!/usr/local/bin/ruby --disable-gems
然后,您已将 Ruby 二进制文件的位置硬连接到脚本中。
当然,有些操作系统不解释 shebang 行at all。 (毕竟,它们从未在任何标准中指定,甚至没有正确记录。)
另一种选择是设置RUBYOPT
shell 环境中的环境变量,只需切换到不同的环境即可RUBYOPT
取消设置(或设置为-w
,我个人最喜欢的)用于 Ruby 开发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)