2

我在 Debian 上使用 rbenv。Debian 预装了 ruby​​ 1.9.3。我安装了 rbenv 并用它来安装 ruby​​ 2.1.2。然后我用来rails new制作一个新的 Rails 应用程序。

rbenv versions

system
* 2.1.2 (set by /home/jordanmorris/code/TestRail/.ruby-version)

rbenv global2.1.2
rbenv local(在新的应用程序文件夹中)给2.1.2
ruby -v2.1.2
which ruby/home/jordanmorris/.rbenv/shims/ruby

但是,当我使用rails server(node.js)时,查看“欢迎加入站点”并单击“关于您的应用程序的环境”,它会报告:
Ruby version 1.9.3-p484 (x86_64-linux)

为什么这没有按预期显示使用 rbenv 设置的版本,这是否值得关注?

我只安装了一个版本的rails,afaik,它报告正确(4.1.4)。

4

1 回答 1

0

这个答案帮助了我。

问题是我使用sudo.

rbenv 在每个用户的基础上运行。因此,rbenv install为 jordanmorris 安装了 ruby​​ 2.1.2,而sudo gem install rails使用为 root (1.9.3) 安装的唯一版本的 ruby​​/gem 安装了 rails。

之后,每次我运行rbenvorruby时,他们都使用由 rbenv 确定的预期 rails 版本,但每次我运行rails neworrails server时,它都会使用安装在 ruby​​ 1.9.3 之上的 rails,这是唯一存在的 rails 实例。

我按照以下步骤修复它:

  1. 卸载 rails 及其依赖项(只是因为我喜欢保持整洁的房子)。
  2. 安装 rails 及其依赖项而不使用sudo.
  3. 运行rbenv rehash
  4. 重新生成一个新的应用程序 ( rails new)。

正确的版本现在显示在 Welcome aboard -> About your application's environment 页面中。

另请注意,该rails new命令将创建一个使用 spring 的应用程序。考虑安装rbenv-binstubs以避免存根与 rbenv 冲突。

于 2015-02-06T07:52:04.523 回答