Bundler:安装特定的.gem文件

时间:2010-12-15 16:05:33

标签: ruby windows rubygems gem bundler

有没有办法告诉Bundler安装我躺在的特定.gem文件?

我有一个ParseTree的编译版本,我必须使用(该死的,Windows!),但是不想扩展gem文件以添加:path => '...'属于'gem'要求。

5 个答案:

答案 0 :(得分:2)

您还可以使用bundle package打包您的宝石,这会将您的所有宝石放入项目的供应商/缓存目录中。如果需要,用该目录中的预编译gem覆盖ParseTree。然后,当您在另一台计算机上设置项目时,运行bundle install --local,它将只安装您已打包的宝石。

答案 1 :(得分:2)

我没有设置你自己的gem-server,而是通过在我的Gemfile中编写以下内容来解决这个问题(显式版本至关重要):

gem 'libv8', '3.11.8.3mytest', :path => '../libv8/pkg'

../libv8/pkg文件夹仅包含二进制打包的gem libv8-3.11.8.3mytest-x86_64-linux.gem

希望这有帮助。

答案 2 :(得分:1)

我认为你不能。据我所知,你需要将.gem解压缩到像vendor这样的东西并设置:path选项。

答案 3 :(得分:1)

你不能将gem声明指向Github的ParseTree分支吗?

答案 4 :(得分:1)

我明白了 - 感谢所有回复的人! :)

诀窍是设置一个本地gem服务器(用,呃,“gem服务器”)并将我的Gemfile源代码改为指向http://localhost:8808而不是http://rubygems.org

这意味着bundler将从当前安装的gem集中获取所有gem(这对我的情况来说恰好可能),然后编译的lib就可以了。