Rails没有使用我的全局Ruby版本
我想在Ruby 2.1.0中使用Rails,但它使用的是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
根据localhost:3000/rails/info/properties
,Rails使用的是Ruby 1.9.3(x86_64-linux)。 来自rails server
日志消息给出: 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时制作项目
- 将
2.1.0
放在项目根目录中的.ruby-version
文件中(由@Agis建议) - 重启终端会话并启动登录bash shell(由@Russel建议)
- 在项目的Gemfile中指定所需的Ruby版本(由@ rlecaro2建议)
FWIW,我正在使用带有鱼壳的Ubuntu 13.10。
你没有告诉你如何安装rbenv
,但我认为这是每用户安装(默认情况下)。 在这种情况下,您应该在不使用sudo
情况下安装gem。 当你做了sudo gem install rails
,它安装在系统ruby中,而不是rbenv的选择。
解决方案 – 安装没有sudo的rails:
rbenv global 2.1.0 gem install rails rbenv rehash
听起来很傻,但你重启终端会话了吗?
否则尝试输入
/bin/bash --login
尝试使用以下内容在项目的根目录中创建.ruby-version
文件:
2.1.0