6

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

4

2 回答 2

12
ruby --disable-gems

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

编辑 25-10-2012:Ruby 核心在评论中与@rogerdpack 有相同的想法,并添加了更详细的ruby --help参数。红宝石改版!

于 2012-10-17T20:36:25.223 回答
1

查看ruby​​gems 配置文件,我会尝试破解gempathgemhome查看您是否可以覆盖(而不仅仅是附加到)默认值。

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

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

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

于 2012-10-17T20:27:16.857 回答