有没有办法告诉Bundler安装我躺在的特定.gem文件?
我有一个ParseTree的编译版本,我必须使用(该死的,Windows!),但是不想扩展gem文件以添加:path => '...'属于'gem'要求。
答案 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就可以了。