在Python Elastic Beanstalk实例上升级Ruby

时间:2019-05-17 19:50:05

标签: python ruby django amazon-web-services amazon-elastic-beanstalk

我的ruby -v在我的Python EB实例上是ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

我需要Ruby 2.2来安装sass。

如何获得ruby 2.2?

我的.ebextensions具有以下内容:

packages:
  yum:
    ruby-devel: []
  rubygems:
    sass: []

但是我仍然只得到旧版本的Ruby。

3 个答案:

答案 0 :(得分:1)

对于有相同问题但尚未解决的任何人。

packages:
    yum:
        ruby22: []
        ruby22-devel: []
container_commands:
    01-set_ruby22:
        command: "alternatives --set ruby /usr/bin/ruby2.2"
    02-install_sass:
        command: "gem install sass"

首先,通过 yum ,我们安装受支持的最新版本的Ruby和Ruby Devel(我更喜欢2.4,但问题是针对2.2),然后通过 container_commands ,我们将当前的ruby版本设置为最新版本,然后安装 sass

我给成员加了前缀,因为它告诉容器命令我需要运行每个命令的顺序。

答案 1 :(得分:0)

不确定这是否可行,但是您可以尝试在.ebextensions文件中添加ruby主版本吗?我建议您可以使用最新版本的ruby,到目前为止,它是2.6,也许这样:

packages:
  yum:
    ruby26-devel: []
  rubygems:
    sass: []

但是,如果仅此方法不起作用,则可能需要使用CLI,有关更多建议,请参见this answer

答案 2 :(得分:0)

ruby​​26-devel可能尚未在Amazon Linux回购中提供。尝试安装ruby22-devel并运行alternatives --set ruby /usr/bin/ruby2.2。您可以在ebextensions中运行命令