是否可以使用rvm和bundler缓存gem?

时间:2014-09-05 21:21:26

标签: ruby-on-rails caching rubygems rvm bundler

我们在几个rails项目中有很多宝石。我们使用rvm和bundler以及rubygems和gemsets。有没有办法在本地缓存我需要的宝石,而不是让捆绑商让宝石去获取它们?我们每次有一个新的主要分支时都会更改宝石名称...我的系统有很多我正在下载的宝石的副本。我已经尝试过使用代理,但这似乎没有更快,并且需要运行vm,有时我必须手动刷新缓存,因为它混淆了可用的内容。

2 个答案:

答案 0 :(得分:1)

您可以在开发模式下使用bundle install --path vendor/bundle 将您的宝石设置在供应商文件夹中,并bundle package抓取宝石并将它们打包到供应商/缓存中。详细了解bundle package

阅读此question, and answers,我希望它对您有所帮助。

答案 1 :(得分:0)

Bundler目前不使用共享的本地缓存,但是使用gemsets 而不是可能会更好运。

默认情况下,Bundler会将gem安装到共享位置,如果您对所有项目使用相同的共享位置,它将为使用相同版本的gem的任何项目重用相同的已安装gem(假设它们也使用相同版本的Ruby。

gemler提供的隔离在很大程度上不需要Bundler,它可以正确设置加载路径,以便只有每个gem的正确版本对应用程序可见。