Rails 没有使用我的全局 Ruby 版本

2023-11-21

我想将 Rails 与 Ruby 2.1.0 一起使用,但它使用的是 Ruby 1.9.3(系统版本)。

我在用着rbenv管理我的 Ruby 版本。我的步骤大致如下:

$ 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 gives: INFO ruby 1.9.3 (2012-04-20) [x86_64-linux].

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

$ 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

我尝试过一些没有运气的事情:

  • 使用 rbenv 将 Ruby 的本地版本和 shell 版本设置为 2.1.0
  • rehash rbenv shims(rbenv 表示在安装可执行文件后执行此操作)
  • 切换到 2.1.0 后创建了新的 Rails 项目,以防万一我在使用 1.9.3 时创建了项目
  • putting 2.1.0 in a .ruby-version文件位于我的项目的根目录中(由@Agis建议)
  • 重新启动终端会话并启动登录 bash shell(由@Russel 建议)
  • 在项目的 Gemfile 中指定所需的 Ruby 版本(由 @rlecaro2 建议)

FWIW,我正在使用带有 Fish shell 的 Ubuntu 13.10。


你没说你是怎么安装的rbenv,但我认为这是每用户安装(这是默认的)。在这种情况下,您应该安装 gems,而不使用sudo。当你这样做的时候sudo gem install rails,它是安装在系统ruby中的,不是rbenv选择的。

解决方案 - 安装不使用 sudo 的 Rails:

rbenv global 2.1.0
gem install rails
rbenv rehash
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 没有使用我的全局 Ruby 版本 的相关文章

随机推荐