我想将 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
根据 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
- 重新哈希 rbenv 垫片(rbenv 说要在安装可执行文件后执行此操作)
- 在切换到 2.1.0 后制作了新的 Rails 项目,以防我在使用 1.9.3 时制作项目
- 将
2.1.0
放入项目根目录中的.ruby-version
文件中(@Agis 建议) - 重新启动终端 session 并启动登录 bash shell(@Russel 建议)
- 在项目的 Gemfile 中指定所需的 Ruby 版本(@rlecaro2 建议)
FWIW,我正在使用带鱼壳的 Ubuntu 13.10。
最佳答案
您没有说明您是如何安装 rbenv
的,但我认为这是针对每个用户的安装(这是默认设置)。在这种情况下,您应该在不使用 sudo
的情况下安装 gems。当你执行 sudo gem install rails
时,它被安装在系统 ruby 中,而不是 rbenv 的选择。
解决方案 - 不使用 sudo 安装 rails:
rbenv global 2.1.0
gem install rails
rbenv rehash
关于ruby-on-rails - Rails 没有使用我的全局 Ruby 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21141584/