如何在Rails 3应用程序中将gem添加到我的vendor / cache目录?

时间:2011-05-11 02:35:22

标签: ruby-on-rails-3 bundler

我使用EngineYard,我的部署失败了。我收到了这条消息:

Some gems seem to be missing from your vendor/cache directory.
Could not find rspec-core-2.6.0.rc2 in any of the sources

如何确保这些宝石进入该目录?

4 个答案:

答案 0 :(得分:32)

Bundler附带了一个显式创建此缓存的命令

bundle package

完成此捆绑后,安装将检查并保持供应商/缓存目录为最新版本。

如果你想在没有检查rubygems的情况下在机器上安装宝石,你只需运行

bundle install --local

但是,请注意,如果您经常升级gems(就像我每次发布Rails的子版本时那​​样),您的供应商/缓存可以快速增长。

我当前项目的git存储库是80mb,其中30mb以上是存储在供应商/缓存中的数据。

加速部署似乎是一个好主意, 但总的来说,它只是让我们的存储库变大了。

答案 1 :(得分:6)

如果其他人在使用Capistrano进行部署时遇到此问题,这就解决了我: https://github.com/carlhuda/bundler/issues/1454

拥有一个空的供应商/缓存目录导致了我的问题。

解决方法是从版本控制中删除(不只是忽略内容!) vendor / cache 目录并提交+部署。

答案 2 :(得分:0)

捆绑包而不安装下载宝石。

bundle package --no-install

答案 3 :(得分:-2)

我想出来了。我刚输入:

bundle

在命令行中,它添加了缺少的宝石。