我希望我的应用不能够使用任何已安装的宝石。是否有ruby 1.9启动参数或以编程方式执行此操作的方法?
答案 0 :(得分:10)
ruby --disable-gems
是MRI(1.9)命令行参数。 “它阻止将gem安装目录添加到默认加载路径”。 (Ruby编程语言,第391页)
编辑25-10-2012:Ruby核心在评论中与@rogerdpack具有相同的想法,并添加了更详细的ruby --help
参数。 Ruby revision!
答案 1 :(得分:1)
查看rubygems configuration file,我会尝试删除gempath
或gemhome
以查看您是否可以覆盖(而不是仅仅附加)默认值。
例如,如果将gempath
设置为空,或者指向/dev/null
,则会阻止使用系统宝石,那么这将是最佳选择。
正如我所看到的,主要优点是你的反rubygems配置文件可以作为启动参数传递给ruby 1.9(因此没有编码),记录良好,并检查到你的存储库。
当然,所有这些都忽略了rubygems是ruby 1.9标准库的一部分 - 所以如果ruby无法访问其宝石,ruby可能会窒息死亡,具体取决于ruby的基本安装需要多少宝石功能。 YMMV。