[英]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
我发现有答案: 1 , 2 , 3 , 4 , 5 。 它也是公开的问题 github 。 但是,我已经解决了以下问题:
找到我的捆绑器的路径:
$ which bundle /home/malo/.rvm/gems/ruby-1.9.3-p484@global/bin/bundle
打开它来编辑(或只是猫吧),并认为这具有无效链接在第一线与红宝石:
$ cat $(which bundler)|head -n 1 #!/home/malo/.rvm/rubies/ruby-2.1.0/bin/ruby
然后我获得当前有效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.