繁体   English   中英

Rails服务器错误:Ruby版本是1.8.7,但您的Gemfile指定为1.9.3

[英]Rails Server Error: Ruby version is 1.8.7, but your Gemfile specified 1.9.3

我输入了一个现有的ruby应用程序,并输入:

$ rails s

想在这里启动rails服务器。 但它说:

您的Ruby版本是1.8.7,但您的Gemfile指定为1.9.3

实际上,我有一个1.8.7,但我删除了它。 如果我这样做:

$ ruby​​ -v

它说:ruby 1.9.3p286(2012-10-12修订版37165)[x86_64-darwin11.4.2]

所以我不知道如何解决它。 你能给我一个帮助吗?

如果您使用的是rvm ,请运行以下命令:

$ rvm use 1.9.3

尝试使用bundler

bundle exec rails s

我有类似的问题:

$ bundle install
Your Ruby version is 2.1.0, but your Gemfile specified 1.9.3

但:

$ ruby -v
1.9.3-p484
$ which ruby
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby

我发现有答案: 12345 它也是公开的问题 但是,我已经解决了以下问题:

  1. 找到我的路径:

     $ which bundle /home/malo/.rvm/gems/ruby-1.9.3-p484@global/bin/bundle 
  2. 打开它来编辑(或只是吧),并认为这具有无效链接在第一线与红宝石:

     $ cat $(which bundler)|head -n 1 #!/home/malo/.rvm/rubies/ruby-2.1.0/bin/ruby 
  3. 然后我获得当前有效ruby的路径,并用它替换了该无效:

     $ which ruby /home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby 

    当然你也可以尝试用常见的形式替换它:

     #!/usr/bin/env ruby 

    这应该拿起当前使用的ruby版本。

我发现我得到这个错误的原因是我在我的配置文件中发布了一个Heroku命令行程序而Heroku Toolbelt附带了它自己的Ruby版本。

这个问题的两个解决方案是要么不向Heroku发出Bundler.with_clean_env要么使用Bundler.with_clean_env块而不是反引号来删除heroku命令。

请试试这个:

 1. Open your gemfile
 2. Specify rails version
 3. Run bundle update
 4. Run rails server - rails s

偶尔会发生这种情况。 但是我经常不喜欢在这里和那里切换ruby版本。 所以我只是去Gemfile并将ruby版本切换到我正在使用的版本。 这样做可以让我启动服务器并继续处理。

所以,例如,现在我正在使用的应用程序,我的Gemfile是

ruby ENV["CUSTOM_RUBY_VERSION"] || "2.1.6"

我会改变它

ruby ENV["CUSTOM_RUBY_VERSION"] || "1.9.3"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM