【问题标题】:Is there a way to call ruby1.9 without loading rubygems?有没有办法在不加载 ruby​​gems 的情况下调用 ruby​​1.9?
【发布时间】:2010-07-15 06:13:07
【问题描述】:

所以 ruby​​ 1.9 非常好,因为它会自动需要 ruby​​gems,因此当您调用 require 'somegem' 而不首先需要 ruby​​gems 时,它会工作,这通常很棒。

但我有大量使用 ruby​​ 的 shell 脚本,而且它们通常不依赖 ruby​​gems。 Shell 工具应该立即运行,而无偿加载 ruby​​gems 是一个主要的拖累,主要是因为它涉及大量磁盘操作和分散的小文件。

我希望能够告诉 ruby​​ 在运行这些 shell 脚本时跳过加载 gem。理想情况下,shebang 行中的 #!ruby --no-rubygems 之类的东西。

有这种事吗?或者也许一个编译选项会告诉 ruby​​ ruby​​gems 必须手动需要?

【问题讨论】:

    标签: ruby shell rubygems ruby-1.9


    【解决方案1】:

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

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

    所以,如果你有例子

    #!/usr/bin/env ruby
    

    那么您不太可能将选项附加到末尾。如果 OTOH 你把它改成

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

    然后您已将 Ruby 二进制文件的位置硬连线到您的脚本中。

    当然,还有一些操作系统根本不解释 shebang 行。 (毕竟,它们从未在任何标准中指定,甚至没有正确记录。)

    另一种方法是在您的 shell 环境中设置 RUBYOPT 环境变量,然后简单地切换到一个未设置 RUBYOPT 的不同环境(或设置为 -w,我个人最喜欢的)以进行 Ruby 开发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多