这是针对以下问题的更新:
我刚刚发现在根目录中有一个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。
创建了gemset。
$rvm use ruby-2.2.0@myapp --ruby-version --create
安装最新的导轨
$gem install rails
之后我检查了rails版本只是为了验证
$rails -v
但我收到了Your Ruby version in 2.2.0 but your Gemfile specified 2.1.5
的通知。我还没有我的应用程序文件夹,因为如果我尝试$rails new .
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.
非常感谢任何帮助。如果您需要更多信息,我已准备好提供。
提前致谢。 欢呼声。
答案 0 :(得分:2)
我有类似的问题,使用本指南从头开始重新启动有很多帮助。虽然它似乎是另一个指南,但我发现它比其他指南更加系统和详细。
Rails Apps Guide: Install Ruby on Rails · Ubuntu Linux
或者,尝试Rails Apps Guide: Updating to Rails 4.2
注意:
Rails不仅仅是一个Ruby宝石,它是一个复杂且快速发展的东西 生态系统。使用设置开发环境非常重要 所需宝石的最新版本 发展。