【问题标题】:Libv8 & therubyracer - Full install on every new site deployment?Libv8 和 therubyracer - 在每个新站点部署上完全安装?
【发布时间】:2013-12-17 16:31:07
【问题描述】:

我有一个 Ubuntu 12.04 服务器和几个 rails 3.2.14 站点。每次我进行新站点部署(通过 capistrano)时,第一次安装需要 20 到 30 分钟,因为它会完整安装 libv8,即使我已经在机器上安装了 libv8 gem(当我执行 @ 时会看到它) 987654322@)。

我尝试了binary version 并尝试更改 therubyracer 的版本。

这是我的 Gemfile 的 ruby​​racer 部分

group :assets do
  gem 'sass-rails',   '~> 3.2.6'
  gem 'coffee-rails', '~> 3.2.2'
      gem 'uglifier', '>= 1.0.3'
  gem 'therubyracer', '~> 0.12.0'
end

我在 Capistrano 中打开了详细输出,在这里它会挂起大约 20 分钟

** [out :: 198.58.99.7] Installing libv8 (3.16.14.3)

有什么建议吗?真的厌倦了需要这么长时间才能部署的新站点。

【问题讨论】:

  • 不确定您所说的“新站点部署”是什么意思。据我了解,Capistrano 在安装 gem 时使用 --deployment 捆绑器标志,这告诉它,除其他外,将 gem 安装到 your_app/shared/bundle/,这意味着每个新部署都不同。
  • 好的,您知道有没有一种方法可以使用机器版本的 gem(而不是为每个新的 Rails 站点编译 libv8)?

标签: ruby-on-rails capistrano therubyracer libv8


【解决方案1】:

正如我在评论中所说,bundle 带有 --deployment 标志(就像 Capistrano 所做的那样)将 gem 安装到 your_app/shared/bundle 中。这种隔离和位置的原因之一是因为与您一起部署的用户可能无权将 gem 安装到系统位置,还有更多原因描述了 here(在“部署您的应用程序”标题下)。

我相信有办法强制捆绑器使用系统宝石,但我没有任何第一手经验;见here

【讨论】:

    【解决方案2】:

    Gemfile 中的依赖项可能存在冲突。

    删除Gemfiletherubyracer 的版本约束,捆绑应该更快。

    gem 'therubyracer'
    

    【讨论】:

    • Max,感谢您的回复,以前我没有那里的版本(实际上是昨天的网站),不幸的是仍然有同样的问题。还有其他建议吗?
    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 2013-10-08
    • 2016-04-09
    • 2015-06-17
    • 2011-12-28
    • 2012-07-28
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多