Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails heroku push上的Ruby版本更改_Ruby On Rails_Ruby_Git_Heroku_Rvm - Fatal编程技术网

Ruby on rails heroku push上的Ruby版本更改

Ruby on rails heroku push上的Ruby版本更改,ruby-on-rails,ruby,git,heroku,rvm,Ruby On Rails,Ruby,Git,Heroku,Rvm,Ruby版本在推入heroku时发生更改 Ruby version change detected. Clearing bundler cache. Old: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] New: ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux] 现在 heroku运行“ruby-v”返回ruby 1.9.2p320

Ruby版本在推入heroku时发生更改

       Ruby version change detected. Clearing bundler cache.
   Old: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
   New: ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]
现在
heroku运行“ruby-v”
返回
ruby 1.9.2p320(2012-04-20修订版35421)[x86\u 64-linux]

但是
ruby-v
仍然返回
ruby 1.9.2p290(2011-07-09修订版32553)[i686linux]

这是我的rvm列表

rvm list

rvm rubies

=* ruby-1.9.2-p290 [ i686 ]

# => - current
# =* - current && default
#  * - default

我不想更改ruby版本。这是怎么发生的?。我怎样才能解决这个问题。请提供帮助。

Heroku永远不会更改您的应用程序仅在补丁级别上运行的Ruby的主要或次要版本

在GEM文件中,可以使用

ruby '1.9.2'

但您不能指定修补程序级别,因为Heroku将为您管理该级别。另外,当你的应用程序在Heroku上时,Rvm不会被使用,所以不会有什么不同。因此,当Heroku更改ruby的补丁级别(如其更改日志所示)时,您将看到发生这种行为。

Heroku提供了有关如何指定ruby版本的说明。文件在这里:。正如@JohnBeynon所说,Heroku是一个PaaS,因此它们可以为您管理许多事情,包括补丁版本(见下一段)。由于Heroku不使用RVM,因此您的RVM设置不会在Heroku上更改任何内容

要指定所需的ruby版本,请将以下内容添加到文件中:

ruby "1.9.2"
在您的情况下,您无法指定修补程序版本,因此无法修复此问题;然而,这个补丁版本的改变是一件好事。它仍然是兼容的,只是会有更多的安全更新和错误修复。您还应该升级本地计算机,而不是尝试降级服务器。有关这方面的更多信息,请访问:

虽然你可以为你的应用程序指定Ruby的版本,但你不能 指定修补程序版本,如Ruby 1.9.2-p290。红宝石补丁经常出现 包括重要的bug和安全修复,并且非常兼容。 Heroku将提供最安全的补丁级别 您请求的版本号


我得到了相同的信息,所以我认为这是Heroku Ruby版本的变化(请注意,只有patchlevel发生了变化)


您可能无法在Heroku端恢复此更改,但您确实应该升级您自己的Ruby版本。

您不必在本地更改Ruby版本,Ruby补丁级别不应引入不兼容,您应该可以在旧补丁上开发并在新补丁上部署。。。也就是说,坏事情总是会发生,ruby团队可能会因为安全问题而被迫在patchlevel中引入不兼容

因此,最好使用以下工具升级本地ruby版本:

rvm get stable
rvm upgrade 1.9.2
或者更明确地说:

rvm upgrade 1.9.2-p290 1.9.2-p320

gem文件中显示了什么?应用程序主文件夹中有.rvmrc文件..?.rvmrc文件包含此行。rvm 1.9.2-p290@app_nameingem文件我没有指定ruby版本。非常感谢。但我已经尝试过将ruby“1.9.2”添加到gemfile中并推送了它。同样的结果。还尝试了heroku回滚。无法还原ruby修补程序版本?不,不可能。出于安全原因,补丁级别更新是平台范围的。尽管如此,我还是想知道是否有可能用自定义构建包锁定特定的补丁级别。升级后延迟的作业将失败。有解决办法吗?