Bundler:安装特定的.gem文件

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

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

Solutions Collecting From Web of "Bundler:安装特定的.gem文件"

你也可以用bundle package打包你的宝石,把所有的宝石放在项目的供应商/缓存目录中。 如果需要,用你的预编译好的gem来覆盖ParseTree。 然后,当你在另一台机器上设置你的项目时,运行bundle install --local ,它只会安装你打包的gem。

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

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

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

希望这可以帮助。

我不认为你可以。 据我所知,你需要gem将.gem解压到vendor /之类的东西,然后设置:path选项。

你不能把宝石声明指向Github上的ParseTree fork吗?

我明白了 – 感谢大家的回应! 🙂

诀窍就是设置一个本地gem服务器(用呃,“gem server”),把gemfile的源代码改为http:// localhost:8808而不是http://rubygems.org

这意味着bundler会从当前安装的gem集合中抓取所有的gem(这对我的情况来说很好),然后编译的libs就可以工作了。