Ruby on rails 部署到heroku时清理绑定器缓存

Ruby on rails 部署到heroku时清理绑定器缓存,ruby-on-rails,heroku,bundler,heroku-san,Ruby On Rails,Heroku,Bundler,Heroku San,每当我部署到Heroku(使用Heroku_san gem的Ruby on Rails应用程序)时,它都会说: Cleaning up the bundler cache. Would have removed sitemap_generator (2.0.1.pre1) Would have removed newrelic_rpm (3.5.5.38) Would have removed httparty (0.10.0) Would have removed thor (0.16.0)

每当我部署到Heroku(使用Heroku_san gem的Ruby on Rails应用程序)时,它都会说:

Cleaning up the bundler cache.
Would have removed sitemap_generator (2.0.1.pre1)
Would have removed newrelic_rpm (3.5.5.38)
Would have removed httparty (0.10.0)
Would have removed thor (0.16.0)
Would have removed ckeditor (3.7.1)
Would have removed fog (1.8.0)
Would have removed rake (0.9.2.2)
Would have removed dalli (2.6.0)
(或以前部署中可能有的任何其他旧gem) 如何清理Heroku应用程序中的捆绑机缓存? 我试着跑:

heroku run bundle clean --force
但这没有帮助

谁能告诉我如何清理Heroku中的bundler缓存?
或者我应该忽略这条消息吗?

我也在我部署过的每个Heroku应用程序上都会看到这条消息,而且我还没有遇到过问题

这就是我认为您不必担心的原因:

  • 在他们的服务器上有一堆存储的gem不应该减慢你的应用程序。见鬼,即使你在Gemfile中加入了一堆你不需要的gem,显著的性能影响很可能是应用程序的初始启动时间和随后的内存使用。如果这些宝石不在你的Gemfile中,你的应用程序的性能应该为零
  • 虽然Heroku对免费帐户上的Slug有100MB的软限制,但我自己的轶事证据表明,这并不包括您从Gemfile中删除的宝石(如果下面的猜测是正确的,这是有道理的)
关于Heroku为什么不清理bundler缓存,这里有一些疯狂的猜测:


内存比硬盘空间更昂贵,因此,尽管大多数gem可能会占用硬盘上微不足道的空间,但如果必须将大量gem加载到内存中,它们的数量可能会增加。但是,如果gem不在您的gem文件中,它就不会在内存中。而且删除(可能以后重新下载)gem很可能比将其存储在驱动器上更昂贵,以防您以后改变主意并想将其重新添加到gem文件中。

这是由于Bundler最近引入了一项更改。我们(Heroku)需要追踪它为什么认为它是在
--dry run
模式下运行,并修复它


同时,这是无害的,不会引起任何问题。不幸的是,如果你担心的话,就无法手动清除缓存。

你的heroku_san配置在
config/heroku.yml
中是什么样子的?它看起来像这样:app:'my app name'stack:cedar config:BUNDLE_没有:“development:test”S3_BUCKET:“my BUCKET name”S3_KEY:“my S3 KEY”S3_SECRET:“我的S3秘密”我想我知道原因:@Roman我们现在有一个预感-我们认为这是bundler中的一个bug,因为运行
bundle exec rake assets:precompile--dry run
应用于bundle配置文件<代码>bundle clean在此之前运行,但在生成之间仍然存在
--dry run
配置。此问题现已通过Bundler 1.3.2的使用得到修复。