Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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 ruby版本不匹配_Ruby On Rails_Ruby_Heroku - Fatal编程技术网

Ruby on rails Heroku ruby版本不匹配

Ruby on rails Heroku ruby版本不匹配,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,我对Heroku和Rails应用程序有问题。在我的Gemfile中,我指定了ruby 2.1.5,但我的应用程序崩溃时出现以下日志: 2015-04-08T20:54:15.248878+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 57371 -e production` 2015-04-08T20:54:17.365771+00:00 app[web.1]: /app/vendor/bundle

我对Heroku和Rails应用程序有问题。在我的Gemfile中,我指定了ruby 2.1.5,但我的应用程序崩溃时出现以下日志:

2015-04-08T20:54:15.248878+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 57371 -e production`
2015-04-08T20:54:17.365771+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/bundler-1.7.12/lib/bundler/definition.rb:380:in `validate_ruby!': Your Ruby version is 1.9.3, but your Gemfile specified 2.1.5 (Bundler::RubyVersionMismatch)
2015-04-08T20:54:17.365791+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/bundler-1.7.12/lib/bundler.rb:118:in 'setup'

2015-04-08T20:54:17.365793+00:00 app[web.1]:    from /app/vendor/bundle/ruby/2.1.0/gems/bundler-1.7.12/lib/bundler/setup.rb:17:in 'top (required)'

2015-04-08T20:54:17.365795+00:00 app[web.1]:    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in 'require'

2015-04-08T20:54:17.365796+00:00 app[web.1]:    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in 'require'
2015-04-08T20:54:17.365798+00:00 app[web.1]:    from /app/config/boot.rb:3:in '<top (required)>'
2015-04-08T20:54:17.365800+00:00 app[web.1]:    from bin/rails:7:in 'require_relative'
2015-04-08T20:54:17.365802+00:00 app[web.1]:    from bin/rails:7:in <main>

2015-04-08T20:54:18.135689+00:00 heroku[web.1]: Process exited with status 1

2015-04-08T20:54:18.155346+00:00 heroku[web.1]: State changed from starting to crashed
2015-04-08T20:54:41.881395+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=....herokuapp.com request_id=1ec36521-d1ca-4ea3-b635-b79caf9b82c9 fwd="x.x.x.x" dyno= connect= service= status=503 bytes=
具有正确的旧/新版本

编辑4:Heroku似乎没有正确加载环境变量,或者是吗?因此加载和使用了错误的ruby版本:

local$ heroku config -s | grep PATH
PATH=/app/vendor/ruby-2.1.5/bin:/app/vendor/bundle/ruby/2.1.0/bin:/bin:/usr/bin:/app/bin:/app/vendor/bundle/bin
local$ heroku run ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]
local$ heroku run bash
heroku $ echo $PATH
/app/bin:/app/vendor/bundle/bin:/app/vendor/bundle/ruby/2.1.0    /bin:/app/vendor/ruby-2.1.5/bin:/app/vendor/bundle/ruby/2.1.0    /bin:/bin:/usr/bin:/app/bin:/app/vendor/bundle/bin
heroku $ cat .profile.d/ruby.sh | grep PATH
export GEM_PATH="$HOME/vendor/bundle/ruby/2.1.0:$GEM_PATH"
export PATH="$HOME/bin:$HOME/vendor/bundle/bin:$HOME/vendor/bundle/ruby/2.1.0/bin:$PATH"
环境正在/app/bin中寻找ruby,而不是/app/vendor/ruby-2.1.5/bin。如果在Heroku环境中,我将PATH导出到正确的值,那么我可以毫无问题地运行bundle。不幸的是,为应用程序提供服务的实例似乎不是


我可以在profile.d/ruby.sh中更改路径,也可以创建.ruby版本文件,不过heroku上既没有nano,也没有pico,也没有vim。我该怎么办?

好吧,48小时后,我在这里找到了解决方案:

事实上,在我的项目中有一些剩余的垃圾,即在bin文件夹中。以下是解决问题的方法:

$bundle配置-删除bin

$bundle exec rake rail:update:bin


都是本地的。然后推到heroku,不要忘记包含新生成的文件。万岁

好吧,48小时后,我在这里找到了解决方案:

事实上,在我的项目中有一些剩余的垃圾,即在bin文件夹中。以下是解决问题的方法:

$bundle配置-删除bin

$bundle exec rake rail:update:bin


都是本地的。然后推到heroku,不要忘记包含新生成的文件。万岁

在部署到Heroku时遇到了一个相关问题,涉及ruby版本不匹配。该问题是bundler的一个冲突版本。Heroku将每个构建包锁定到特定版本的bundler

要修复,请更新bundler gem更新bundler,然后重新安装和部署bundle


更多信息:

在部署到Heroku时遇到了一个相关问题,涉及ruby版本不匹配。该问题是bundler的一个冲突版本。Heroku将每个构建包锁定到特定版本的bundler

要修复,请更新bundler gem更新bundler,然后重新安装和部署bundle


更多信息:

您在部署时是否遇到此错误?这可能会帮助您@forthowin:谢谢,我已经尝试将二进制文件添加到路径中,但不幸的是没有效果。您使用的是rvm吗?在那里安装相同的ruby版本,然后运行Bundle我正在使用rvm,我做到了。就我而言,一切都很好,我可以运行本地服务器。只有heroky崩溃。您在部署时遇到此错误吗?这可以帮助您@forthowin:谢谢,我已经尝试将二进制文件添加到路径中,但不幸的是没有效果。您使用的是rvm吗?在那里安装相同的ruby版本,然后运行Bundle我正在使用rvm,我做到了。就我而言,一切都很好,我可以运行本地服务器。只有heroky崩溃了。修复了我的Gemfile.lock文件。感谢修复了我的Gemfile.lock文件。谢谢
local$ heroku config -s | grep PATH
PATH=/app/vendor/ruby-2.1.5/bin:/app/vendor/bundle/ruby/2.1.0/bin:/bin:/usr/bin:/app/bin:/app/vendor/bundle/bin
local$ heroku run ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]
local$ heroku run bash
heroku $ echo $PATH
/app/bin:/app/vendor/bundle/bin:/app/vendor/bundle/ruby/2.1.0    /bin:/app/vendor/ruby-2.1.5/bin:/app/vendor/bundle/ruby/2.1.0    /bin:/bin:/usr/bin:/app/bin:/app/vendor/bundle/bin
heroku $ cat .profile.d/ruby.sh | grep PATH
export GEM_PATH="$HOME/vendor/bundle/ruby/2.1.0:$GEM_PATH"
export PATH="$HOME/bin:$HOME/vendor/bundle/bin:$HOME/vendor/bundle/ruby/2.1.0/bin:$PATH"