无法从供应商缓存安装 Gems

Ari*_*Ari 5 capistrano bundler ruby-on-rails-3

尽管 Capistrano 使用--local来自供应商缓存的标志gem执行捆绑安装,但并未将其安装到共享捆绑路径中。相反,我收到通知:

您的供应商/缓存目录中似乎缺少一些 gem。

在任何来源中都找不到 libv8-3.3.10.4

libv8-3.3.10.4 肯定位于供应商/缓存中。有谁知道为什么 bundler 不会从缓存中安装 gem?

Capistrano 执行的完整命令如下。

"cd /home/ari/apps/air/releases/20120209214139 && bundle install --gemfile /home/ari/apps/air/releases/20120209214139/Gemfile --path /home/ari/apps/air/shared/bundle --deployment --local --quiet --without development test"
Run Code Online (Sandbox Code Playgroud)

Kev*_*son 0

bundle help install

--local
          Do not attempt to connect to rubygems.org,  instead  using  just
          the  gems already present in Rubygems' cache or in vendor/cache.
          Note that if a more appropriate platform-specific gem exists  on
          rubygems.org, it will not be found.
Run Code Online (Sandbox Code Playgroud)

注意:libv8首次安装时构建本机扩展。如果您为一个平台供应 gem 并尝试在另一平台上使用它,这可能会导致问题。

服务器上的 Rubygems 缓存中不存在 gem,或者vendor/cache您的部署中不存在 gem。因此,如果您在目录中看到该 gem vendor/cache,则可能是捆绑程序不知道在哪里查找您的vendor/cachegem。

的输出是什么cd /home/ari/apps/air/releases/20120209214139 && bundle list?如果它没有显示在那里,但您可以在服务器上找到它,那么您就知道捆绑器不知道 gem 在哪里vendor/cache

尝试通过您的登录名进行操作,并与 Capistrano 的输出gem env进行比较。gem env查看 GEM PATHS 输出是否不同。