【问题标题】:Unable to Install Gems from Vendor Cache无法从供应商缓存安装 Gem
【发布时间】:2012-02-09 22:06:19
【问题描述】:

尽管 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"

【问题讨论】:

  • 我也有同样的问题。跑bundle pack 然后bundle install --deploymentvendor/cache 中找不到它
  • 这看起来很相似:groups.google.com/group/capistrano/msg/a82af2cc48784d4b。 OP 声称已通过安装 Rails 和 libv8 解决了问题。不确定它是否适用于您的情况。

标签: ruby-on-rails-3 capistrano bundler


【解决方案1】:

来自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.

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

要么宝石不在服务器上的 Rubygems 缓存中,要么宝石不在您的部署中的 vendor/cache 中。因此,如果您在 vendor/cache 目录中看到 gem,则可能是 bundler 不知道在哪里寻找您的 vendor/cache gem。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多