升级 Ruby on Python Elastic Beanstalk 实例
Posted
技术标签:
【中文标题】升级 Ruby on Python Elastic Beanstalk 实例【英文标题】:Upgrade Ruby on Python Elastic Beanstalk instance 【发布时间】:2019-10-05 03:50:07 【问题描述】:我的 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。
【问题讨论】:
【参考方案1】:不确定这是否可行,但您可以尝试在 .ebextensions 文件中添加 ruby 主版本吗?我会推荐你可以使用的最新版本的 ruby,目前它是 2.6,所以也许:
packages:
yum:
ruby26-devel: []
rubygems:
sass: []
但是,如果仅此一项不起作用,您可能需要使用 CLI,有关更多想法,请参阅 this answer
【讨论】:
我正在尝试这个,但由于某种原因仍在安装 ruby 2.0,这意味着同时安装了 ruby 2.0 和 ruby 2.2。运行ruby -v
仍然输出ruby2.0.0
。
不,我正在使用 yum
来管理 Elastic Beanstalk 上的包。我可以在 Elastic Beanstalk 上使用 RVM 吗?【参考方案2】:
ruby26-devel 可能在 amazon linux repo 中还没有。尝试安装ruby22-devel
并运行alternatives --set ruby /usr/bin/ruby2.2
。您可以在 ebextensions 中运行命令
【讨论】:
【参考方案3】:对于有相同问题但尚未解决的任何人。
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
我在数字前加上前缀,因为它告诉容器命令我需要运行每个命令的顺序。
【讨论】:
以上是关于升级 Ruby on Python Elastic Beanstalk 实例的主要内容,如果未能解决你的问题,请参考以下文章
启动 Ruby on Rails 应用程序时无法通过 AWS Elastic Beanstalk“恭喜”屏幕
AWS Elastic Beanstalk Ruby on Rails 6 应用程序部署错误与 nginx
在 Elastic Beanstalk 环境上部署 ruby on rails 应用程序时出现 AWS 数据库迁移错误
部署 Ruby on Rails 6 - AWS Elastic Beanstalk - Docker: ArgumentError: Missing `secret_key_base`