【问题标题】:Why does rails server Welcome Aboard site report a different ruby version to rbenv?为什么 Rails 服务器 Welcome Aboard 站点向 rbenv 报告不同的 ruby​​ 版本?
【发布时间】:2015-02-04 11:37:53
【问题描述】:

我在 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 global 提供2.1.2
rbenv local(在新的应用程序文件夹中)提供2.1.2
ruby -v 提供2.1.2
which ruby 提供/home/jordanmorris/.rbenv/shims/ruby

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

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

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

【问题讨论】:

  • 如果您在应用程序文件夹中键入which ruby,您得到的是 rbenv ruby​​ 还是系统 ruby​​?
  • @Anthony which ruby 给了/home/jordanmorris/.rbenv/shims/ruby
  • 为了测试,你能不能把ruby '2.1.2'添加到你的Gemfile,运行rails server,再检查一下应用的环境?
  • ~/.rbenv/shimsfirst directory in your path 吗?
  • @MikeSherrill'CatRecall' 垫片路径位于我的 $PATH 的开头。有趣 - 当我将 ruby'2.1.2' 添加到我的 Gemfile 时,rails server 失败并显示 Your Ruby version is 1.9.3, but your Gemfile specified 2.1.2

标签: ruby-on-rails ruby ruby-on-rails-4 rbenv multiple-versions


【解决方案1】:

This 回答对我有帮助。

问题是我使用sudo 安装了rails。

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

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

我按照以下步骤修复它:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2021-02-27
    • 2012-06-12
    • 2010-11-13
    相关资源
    最近更新 更多