13

我试过这个提示:https ://github.com/thoughtbot/laptop/pull/14#issuecomment-3192270 。

部署时我看到

-----> Using RUBY_VERSION: ruby-1.9.3-p0

但我的日志显示环境变量不受尊重

INFO  ruby 1.9.2 (2011-07-09) [x86_64-linux]

哈克/实验解决方案接受!

编辑:我在雪松堆栈上。

4

6 回答 6

18

这是针对所有引用此问题的人的更新... Heroku 现在允许您在 Gemfile 中指定您的 ruby​​ 版本,这要归功于它们添加到最新版本的 bundler 中。

首轮:

gem install bundler --pre

然后将 ruby​​ '1.9.3' 添加到您的 Gemfile 中。

source 'http://rubygems.org'

ruby '1.9.3'
gem  'rails', '3.2.3'

Heroku 完整版本的详细信息位于http://blog.heroku.com/archives/2012/5/9/multiple_ruby_version_support_on_heroku/

于 2012-05-16T19:37:30.040 回答
9

对,所以 Ruby 1.9.3 绝对是可能的。正如你所说,hacky/experimental solutions被接受了——这绝对是其中之一。

其实很简单;

  1. 为您的应用程序启用Heroku Labsuser_env_compile功能。

  2. 将 heroku 配置变量设置为 RUBY_VERSION 到 ruby​​-1.9.3-p0 ( heroku config:add RUBY_VERSION=ruby-1.9.3-p0)

  3. 确保 heroku PATH 配置变量bin在前面 ( heroku config:add PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin)

下次部署时,您应该会看到您的应用程序使用 1.9.3 - 部署输出也会显示这一点;

-> Heroku receiving push
-----> Ruby/Rails app detected
-----> Using RUBY_VERSION: ruby-1.9.3-p0
-----> Installing dependencies using Bundler version 1.1.rc.7
Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
于 2012-01-10T20:38:27.530 回答
5

自 5 月 10 日起,可以以更简单的方式使用 Ruby 1.9.3。看看 Heroku 的博客: http ://blog.heroku.com/archives/2012/5/9/multiple_ruby_version_support_on_heroku/

于 2012-05-15T09:49:57.247 回答
1

我今天能够在 Heroku cedar 上的 Ruby 1.9.3-p0 上运行 Rails 3.2 应用程序

我按照 http://railsapps.github.com/rails-heroku-tutorial.html上的步骤进行操作

在1.9.3 和 openssl 本地遇到问题

但能够部署并运行应用程序 http://mccaffrey-rails32-193.herokuapp.com

没有Procfile

Gemfile 中的薄和 pg

我添加了一些调试输出,以便您可以看到 rails 和 ruby​​ 版本信息

一个基本的 Rails 应用程序块大小为 28.9MB,这太疯狂了!

于 2012-02-02T21:51:57.053 回答
1

我遇到了同样的问题:在我的 Gemfile 中指定 1.9.3,但它使用的是 1.9.2。这修复了它:

heroku config:add PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
于 2012-07-16T23:24:32.967 回答
0

根据 Heroku Cedar 堆栈定义 Cedar 目前仅支持 MRI 1.9.2。您是否尝试过联系 Heroku 支持?他们通常反应灵敏。

编辑:有时可能会“欺骗”平台运行一些二进制文件,例如在 Heroku 上运行 Haskell,所以如果你真的很专注,你可以打包一些东西。我想这对 MRI 来说并不容易。

于 2012-01-09T06:51:43.637 回答