在 Amazon OpsWorks 上使用 Ruby 2.0
Posted
技术标签:
【中文标题】在 Amazon OpsWorks 上使用 Ruby 2.0【英文标题】:Using Ruby 2.0 on Amazon OpsWorks 【发布时间】:2013-05-15 00:40:54 【问题描述】:我想,所以我正在尝试以下方法:
选择自定义食谱并将它们设置到我的 https://github.com/aws/opsworks-cookbooks 的 fork 在此处将所有版本号 https://github.com/aws/opsworks-cookbooks/blob/master/ruby/attributes/ruby.rb 更新为 2.0 值。不过,这似乎没有任何效果。
自定义说明书会覆盖其内置的说明书吗? OpsWorks 是否使用说明书中的 Ruby 配方进行基本 Ruby 设置? 同样的问题也适用于 nginx - 我可以通过更改食谱的 fork 来控制版本和设置吗?【问题讨论】:
【参考方案1】:OpsWorks 现在完全支持 Ruby 2.0,在 Layer 设置中您可以指定 Rails、Bundler 和 Rubygems 的版本。
【讨论】:
【参考方案2】:在 AWS opsworks 上部署 ruby 2.0 和 rails 4.0
更新堆栈 json
"opsworks" :
"ruby_version" : "2.0.0"
更新 Rails 应用层。
在“Rails App Layer”中,确保将 rubygem 版本升级为 2.X(默认为 1.8.24)
否则你会得到 require mysql2/mysql.rb [loadError] :(
LoadError: cannot load such file -- mysql2/mysql2
【讨论】:
【参考方案3】:Opsworks 已经支持 Ruby 2.0,只是没有通过 UI 公开。但是,您只需传入以下自定义 JSON 即可轻松启用它
"opsworks" :
"ruby_version" : "2.0.0"
就是这样!无需安装任何自定义包或任何东西。
【讨论】:
太棒了...会检查一下。是否有相关文档和其他可用选项? 非常感谢您,这应该是问题的答案,因为这确实有效,您甚至可以看到 AWS 食谱显示 Ruby 2.0.0 支持github.com/aws/opsworks-cookbooks/blob/master-chef-11.4/ruby/… @SudhirJonathan 关于 Ruby ***属性的文档docs.aws.amazon.com/opsworks/latest/userguide/…【参考方案4】:OpsWorks 分发他们自己的一些包,而 Ruby 2.0 目前不在其中。 如果你想使用 Ruby 2.0,你必须自己安装它。
最好, 丹尼尔
【讨论】:
澄清一下,我什至认为 Debian 在撰写本文时还没有包含 2.0 软件包。而且我认为 Amazon Linux 是基于 Debian。 不是,它是基于 RHEL 的。是的,现在还没有官方的 .deb 包。但在这种特殊情况下,如果您使用 OpsWorks 说明书,您将只能获得亚马逊维护的软件包。以上是关于在 Amazon OpsWorks 上使用 Ruby 2.0的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon OpsWorks 上为 Rails 应用程序运行 Redis?