【问题标题】:how do you start ruby 1.9 without rubygems你如何在没有 ruby​​gems 的情况下启动 ruby​​ 1.9
【发布时间】:2012-10-17 20:22:17
【问题描述】:

我希望我的应用能够使用任何已安装的 gem。是否有 ruby​​ 1.9 启动参数或以编程方式执行此操作的方式?

【问题讨论】:

  • 你想达到什么目的?
  • 除非您告诉它,否则您的应用将如何使用任何 gem?似乎不添加任何require-type 命令可以解决问题。似乎调用 Ruby 解释器的用户可以使用“-r”并强制 Ruby 加载某些内容,无论您的代码是否允许。
  • 我想确保在我的运行中从不使用任何系统 gems——只使用本地文件(准备我的应用程序以进行分发)。

标签: ruby ruby-1.9


【解决方案1】:
ruby --disable-gems

是 MRI (1.9) 命令行参数。 “它会阻止将 gem 安装目录添加到默认加载路径”。 (Ruby 编程语言,第 391 页)

编辑 25-10-2012:Ruby 核心与 cmets 中的 @rogerdpack 有相同的想法,并添加了更详细的 ruby --help 参数。 Ruby revision!

【讨论】:

  • Flabberghasting ruby​​ -h 没有输出这个,也没有为你提供“详细”选项。哎呀。
  • @rogerdpack 是的,这很奇怪。举报as a bug
  • Jorg W Mittag 在--disable-gemsstackoverflow.com/a/3253995/38765 上有更详细的评论
【解决方案2】:

查看rubygems configuration file,我会尝试破解gempathgemhome,看看您是否可以覆盖(而不是仅仅附加到)默认值。

例如,如果将gempath 设置为空或指向/dev/null,会阻止使用系统gem,那么这就是要走的路。

在我看来,这样做的主要优点是,您的 anti-rubygems 配置文件可以作为启动参数(因此未编码)传递给 ruby​​ 1.9,有据可查,并签入您的存储库。

当然,所有这些都忽略了 ruby​​gems 是 ruby​​ 1.9 标准库的一部分 - 因此,如果 ruby​​ 无法访问其 gem,它可能会窒息而死,这取决于 ruby​​ 的基本安装需要多少宝石功能。 YMMV。

【讨论】:

  • 这是一个迷人的想法——只需调整脚本中的 gempath。天才!
猜你喜欢
  • 1970-01-01
  • 2010-10-16
  • 2015-10-02
  • 2020-05-13
  • 2012-07-23
  • 2019-02-14
  • 2014-02-08
  • 2020-01-14
  • 1970-01-01
相关资源
最近更新 更多