Rails 没有使用我的全局 Ruby 版本 [英] Rails is not using my global Ruby version

查看:41
本文介绍了Rails 没有使用我的全局 Ruby 版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 Ruby 2.1.0 中使用 Rails,但它使用的是 Ruby 1.9.3(系统版本).

I want to use Rails with Ruby 2.1.0, but it's using Ruby 1.9.3 (the system's version).

我正在使用 rbenv 来管理我的 Ruby 版本.我的步骤大致如下:

I'm using rbenv to manage my Ruby versions. My steps were something along the lines of:

$ rbenv install 2.1.0
$ rbenv global 2.1.0
$ sudo gem install rails -v 4.0.2
$ rbenv rehash
$ rbenv versions
  system
* 2.1.0 (set by /home/dennis/.rbenv/version)
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
$ rails new app && cd app
$ rails server

Rails 使用的是 Ruby 1.9.3 (x86_64-linux),根据 localhost:3000/rails/info/properties.来自 rails server 的日志消息给出:INFO ruby​​ 1.9.3 (2012-04-20) [x86_64-linux].

Rails is using is Ruby 1.9.3 (x86_64-linux), according to localhost:3000/rails/info/properties. A log message from rails server gives: INFO ruby 1.9.3 (2012-04-20) [x86_64-linux].

我认为 Rails 使用的是系统版本的 Ruby,因为版本匹配.

I think Rails is using the system version of Ruby because the versions match.

$ rbenv local system
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ rbenv local --unset  # Unset local Ruby version, go back to 2.1.0

我尝试过但没有成功的一些事情:

Some things I've tried with no luck:

  • 使用 rbenv 将 Ruby 的本地和 shell 版本设置为 2.1.0
  • rehash rbenv shims(rbenv 说在安装可执行文件后执行此操作)
  • 切换到 2.1.0 后创建了新的 Rails 项目,以防万一我在使用 1.9.3 时创建了这些项目
  • 2.1.0 放在我项目根目录的 .ruby-version 文件中(@Agis 建议)
  • 重新启动终端会话并启动登录 bash shell(由 @Russel 建议)
  • 在项目的 Gemfile 中指定所需的 Ruby 版本(由 @rlecaro2 建议)
  • setting the local and shell versions of Ruby to 2.1.0 with rbenv
  • rehash rbenv shims (rbenv says to do this after installing executables)
  • made new Rails projects after switching to 2.1.0 just in case I made the projects while using 1.9.3
  • putting 2.1.0 in a .ruby-version file in the root of my project (suggested by @Agis)
  • restarting terminal session and starting a login bash shell (suggested by @Russel)
  • specifying the desired Ruby version in the project's Gemfile (suggested by @rlecaro2)

FWIW,我使用的是带有鱼壳的 Ubuntu 13.10.

FWIW, I'm using Ubuntu 13.10 with the fish shell.

推荐答案

你没有告诉你是如何安装 rbenv 的,但我认为它是按用户安装的(这是默认的).在这种情况下,您应该在不使用 sudo 的情况下安装 gem.当您执行 sudo gem install rails 时,它安装在系统 ruby​​ 中,而不是 rbenv 选择的一个.

You didn't tell how you installed rbenv, but I think it is per-user installation (which is default). In this case you should install gems without using sudo. When you did sudo gem install rails, it was installed in system ruby, not rbenv's selected one.

解决方案 - 在没有 sudo 的情况下安装 rails:

Solution - install rails without sudo:

rbenv global 2.1.0
gem install rails
rbenv rehash

这篇关于Rails 没有使用我的全局 Ruby 版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆