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