使用RVM在ruby 2.2.0上安装rails 4.2生成"你的Ruby版本是2.2.0,但是你的Gemfile指定了2.1.5"

时间:2015-02-10 06:49:43

标签: ruby-on-rails ruby gem rvm

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

我刚刚发现在根目录中有一个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 .

  4. ,我会得到相同的输出

    以下是与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 for global 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 for 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.
    

    非常感谢任何帮助。如果您需要更多信息,我已准备好提供。

    提前致谢。 欢呼声。

1 个答案:

答案 0 :(得分:2)

我有类似的问题,使用本指南从头开始重新启动有很多帮助。虽然它似乎是另一个指南,但我发现它比其他指南更加系统和详细。

Rails Apps Guide: Install Ruby on Rails · Ubuntu Linux

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

注意:

  

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