2014-09-05 41 views
0

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

+0

我不知道这是否适用于gemsets,但你可以尝试'bundle install --local',它告诉bundler跳过与'rubygems.org' idk的连接,如果它试图从其他gemset中复制gem或不 – 2014-09-05 22:49:35

回答

1

您可以使用bundle install --path vendor/bundle在开发模式 设置在供应商的文件夹中的宝石,并bundle package抢宝石和包裹它们的供应商/缓存。阅读更多关于bundle package

看完这个question, and answers,我希望它对您有所帮助。

+0

我想你是在谈论部署问题?这不是我所问的。 – nroose 2014-09-07 06:49:04

0

Bundler当前不使用共享的本地缓存,但使用gemsets可能会使不是

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

Bundler提供的隔离在很大程度上是不必要的,Bundler会正确设置加载路径,以便只有正确版本的每个gem才能被应用程序看到。

相关问题