有没有一种方法可以在不加载rubygems的情况下调用ruby1.9?[英] Is there a way to call ruby1.9 without loading rubygems?

本文是小编为大家收集整理的关于有没有一种方法可以在不加载rubygems的情况下调用ruby1.9?的处理方法,想解了有没有一种方法可以在不加载rubygems的情况下调用ruby1.9?的问题怎么解决?有没有一种方法可以在不加载rubygems的情况下调用ruby1.9?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

所以 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 必须手动需要?

推荐答案

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

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

所以,如果你有例子

#!/usr/bin/env ruby

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

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

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

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

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

本文地址:https://www.itbaoku.cn/post/786704.html