【问题标题】:installing rails 4.2 on ruby 2.2.0 using RVM generates "Your Ruby version is 2.2.0, but your Gemfile specified 2.1.5"使用 RVM 在 ruby​​ 2.2.0 上安装 rails 4.2 会生成“您的 Ruby 版本是 2.2.0,但您的 Gemfile 指定的是 2.1.5”
【发布时间】:2015-04-10 03:13:20
【问题描述】:

这是针对下述问题的更新:

我刚刚发现根目录(即系统主目录)中有一个 Gemfile 和 Gemfile.lock,每当我创建一个新的 gemset 时,我相信它会使用这个 gemfile。在新创建的 gemset 中安装 rails 后,当检查 rails 版本或尝试创建新应用程序时,它显示错误Your ruby version is 2.2.0, but your Gemfile specifies 2.1.5,导致我的主目录中的 Gemfile 文件包含该 ruby​​ 版本,如果删除该 Gemfile,并且尝试创建一个新的 rails 应用程序,它会搜索该 Gemfile。

我目前正在经历一段艰难时期。我在 ruby​​ 2.2.0 和 rails 4.2.0 中开始了一个新项目,并通过在我的项目文件夹中使用 RVM 创建一个 gemset 开始。

  1. 创建的 gemset。

    $rvm use ruby-2.2.0@myapp --ruby-version --create
    
  2. 安装最新的导轨

    $gem install rails
    
  3. 之后我检查了 Rails 版本只是为了验证

    $rails -v
    

    但我收到一条通知,上面写着Your Ruby version in 2.2.0 but your Gemfile specified 2.1.5。我还没有我的应用程序文件夹,因为如果我尝试$rails new .,我会得到相同的输出

以下是与 RVM 相关的输出

  • 我的 RVM 版本是 1.26.10。
  • rvm gemset list

    gemsets for ruby-2.2.0 (found in /Users/samy/.rvm/gems/ruby-2.2.0)
       (default)
       global
       student-portal
       => myapp
    
  • gem list 用于全局 gemset

    bigdecimal (1.2.7, 1.2.6)
    bundler (1.7.13)
    bundler-unload (1.0.2)
    executable-hooks (1.3.2)
    gem-wrappers (1.2.7)
    io-console (0.4.3)
    json (1.8.2, 1.8.1)
    mini_portile (0.6.2)
    minitest (5.5.1, 5.4.3)
    nokogiri (1.6.6.2)
    power_assert (0.2.2)
    psych (2.0.12, 2.0.8)
    rake (10.4.2)
    rdoc (4.2.0)
    rubygems-bundler (1.4.4)
    rvm (1.11.3.9)
    test-unit (3.0.9, 3.0.8)
    
  • gem list 用于 myapp gemset

    actionmailer (4.2.0)
    actionpack (4.2.0)
    actionview (4.2.0)
    activejob (4.2.0)
    activemodel (4.2.0)
    activerecord (4.2.0)
    activesupport (4.2.0)
    arel (6.0.0)
    bigdecimal (1.2.7, 1.2.6)
    builder (3.2.2)
    bundler (1.7.13)
    bundler-unload (1.0.2)
    erubis (2.7.0)
    executable-hooks (1.3.2)
    gem-wrappers (1.2.7)
    globalid (0.3.2)
    hike (1.2.3)
    i18n (0.7.0)
    io-console (0.4.3)
    json (1.8.2, 1.8.1)
    loofah (2.0.1)
    mail (2.6.3)
    mime-types (2.4.3)
    mini_portile (0.6.2)
    minitest (5.5.1, 5.4.3)
    multi_json (1.10.1)
    nokogiri (1.6.6.2)
    power_assert (0.2.2)
    psych (2.0.12, 2.0.8)
    rack (1.6.0)
    rack-test (0.6.3)
    rails (4.2.0)
    rails-deprecated_sanitizer (1.0.3)
    rails-dom-testing (1.0.5)
    rails-html-sanitizer (1.0.1)
    railties (4.2.0)
    rake (10.4.2)
    rdoc (4.2.0)
    rubygems-bundler (1.4.4)
    rvm (1.11.3.9)
    sprockets (2.12.3)
    sprockets-rails (2.2.4)
    test-unit (3.0.9, 3.0.8)
    thor (0.19.1)
    thread_safe (0.3.4)
    tilt (1.4.1)
    tzinfo (1.2.2)
    
  • which ruby给了

    /Users/samy/.rvm/rubies/ruby-2.2.0/bin/ruby
    
  • which rails给了

    /Users/samy/.rvm/gems/ruby-2.2.0@myapp/bin/rails
    
    • 文件包含

      #!/usr/bin/env ruby_executable_hooks
      #
      # This file was generated by RubyGems.
      #
      # The application 'railties' is installed as part of a gem, and
      # this file is here to facilitate running it.
      #
      
      require 'rubygems'
      
      version = ">= 0"
      
      if ARGV.first
        str = ARGV.first
        str = str.dup.force_encoding("BINARY") if str.respond_to?               :force_encoding
        if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
          version = $1
          ARGV.shift
        end
      end
      
      gem 'railties', version
      load Gem.bin_path('railties', 'rails', version)
      

我尝试删除并重新安装 RVM,但没有成功。

我还尝试使用具有不同 gemset 的 ruby​​ 2.1.5 制作应用程序,但是当我尝试执行 rails new app 时出现不同的错误。我得到了Could not find slop-3.6.0 in any of the sources Run 'bundle install' to install missing gems.,但是一旦我执行bundle install,我就无法运行rails new app 命令,因为它会通知

Can't initialize a new Rails application within the directory 
of another, please change to a non-Rails directory first.

任何帮助将不胜感激。如果您需要更多信息,我随时准备提供。

提前致谢。 干杯。

【问题讨论】:

  • ruby '2.1.5' 已在您的应用程序的 gem 文件中设置
  • @Nithin 问题是我无法使用rails new 创建新应用程序。目前我的应用程序文件夹的根级别只有两个文件,即 .ruby-gemset 和 .ruby-version。 .ruby-gemset 文件有 gemset 名称,.ruby-version 中有 ruby​​-2.2.0。
  • @Nithin 除了应用程序文件夹之外,还有其他地方存放应用程序的 gemfile 吗?

标签: ruby-on-rails ruby gem rvm


【解决方案1】:

我遇到了类似的问题,使用本指南从头开始有很大帮助。虽然它看起来又是一个指南,但我发现它比其他指南更系统和详细。

Rails Apps Guide: Install Ruby on Rails · Ubuntu Linux

或者,试试Rails Apps Guide: Updating to Rails 4.2

注意:

Rails 不仅仅是一个 Ruby gem,它是一个复杂且快速发展的 生态系统。设置开发环境很重要 所需的所有宝石的最新版本 发展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2014-05-27
    • 2018-06-09
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多