33

每当我部署到 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 中的捆绑程序缓存?或者我是否应该忽略此消息?

4

2 回答 2

22

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

同时,这无害,也不应该引起任何问题。不幸的是,如果您担心的话,没有办法手动清除缓存。

于 2013-02-04T23:48:29.747 回答
5

我也可以在我部署的每个 Heroku 应用程序上得到这个,并且还没有遇到问题。

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

  • 在他们的服务器上有一堆存储的 gem 不应该减慢你的应用程序。哎呀,即使您将一堆不需要的 gem 放入 Gemfile,明显的性能损失也可能是应用程序的初始启动时间和随后的内存使用。如果这些 gem不在您的 Gemfile 中,那么对您的应用程序的性能影响应该为零。
  • 虽然 Heroku 对免费帐户的 slug 有 100MB 的软限制,但我自己的轶事证据表明这不包括您从 Gemfile 中删除的 gem(如果下面的疯狂猜测是正确的,这是有道理的)。

以下是关于 Heroku 为何不清理捆绑器缓存的疯狂猜测:

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

于 2013-02-01T00:19:09.480 回答