我有不同的宝石
> rvm gemset list
gemsets for ruby-2.0.0-p247 (found in /Users/kai/.rvm/gems/ruby-2.0.0-p247)
=> (default)
global
rails4
> rvm gemset use rails4
Using ruby-2.0.0-p247 with gemset rails4
> rails -v
/Users/kai/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find 'railties' (>= 0) among 43 total gem(s) (Gem::LoadError)
from /Users/kai/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec'
from /Users/kai/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /usr/bin/rails:22:in `<main>'
from /Users/kai/.rvm/gems/ruby-2.0.0-p247@rails4/bin/ruby_noexec_wrapper:14:in `eval'
from /Users/kai/.rvm/gems/ruby-2.0.0-p247@rails4/bin/ruby_noexec_wrapper:14:in `<main>'
当我在做的时候:
> bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Using rake (10.1.0)
Installing i18n (0.6.4)
Installing multi_json (1.7.9)
Installing activesupport (3.2.7)
Installing builder (3.0.4)
Installing activemodel (3.2.7)
Installing erubis (2.7.0)
Installing journey (1.0.4)
Installing rack (1.4.5)
Installing rack-cache (1.2)
Installing rack-test (0.6.2)
Installing hike (1.2.3)
Installing tilt (1.4.1)
Installing sprockets (2.1.3)
Installing actionpack (3.2.7)
Installing mime-types (1.23)
Installing polyglot (0.3.3)
Installing treetop (1.4.14)
Installing mail (2.4.4)
Installing actionmailer (3.2.7)
Installing arel (3.0.2)
Installing tzinfo (0.3.37)
Installing activerecord (3.2.7)
Installing activeresource (3.2.7)
Installing coffee-script-source (1.6.3)
Installing execjs (1.4.0)
Installing coffee-script (2.2.0)
Installing rack-ssl (1.3.3)
Installing json (1.8.0)
Installing rdoc (3.12.2)
Installing thor (0.18.1)
Installing railties (3.2.7)
Installing coffee-rails (3.2.2)
Installing jquery-rails (3.0.4)
Using bundler (1.3.5)
Installing rails (3.2.7)
Installing sass (3.2.10)
Installing sass-rails (3.2.6)
Installing sqlite3 (1.3.7)
Installing uglifier (2.1.2)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
但我有红宝石2.0!为什么它不安装rails 4.0和activesupport 4.0?
答案 0 :(得分:2)
bundler
根据两个文件安装宝石:
Gemfile.lock
在以前的安装过程中保存的严格版本Gemfile
来自用户的宽松版本声明。当您生成rails
项目时,首先使用以下内容生成Gemfile
:
gem 'rails', '~> 3.2'
生成文件后bundle install
运行生成Gemfile.lock
,其中记录了严格的gems版本,从现在开始,对bundle install
的任何后续调用都将仅安装保存的版本Gemfile.lock
。
将宝石更新为较新版本:
Gemfile
是否有任何版本限制 - 可能会阻止安装您想要的版本bundle update <gem_name>
仅更新此单个gem及其所需内容 - 但将更改范围最小化为尽可能小的更改。bundle update
将所有宝石更新为Gemfile
答案 1 :(得分:0)
bundle install
或简称bundle
不会安装最新的gem。 e.g。
gem 'rails'
但通常情况并非如此,我们指定的版本可以防止应用程序出现&#34;崩溃&#34;当一些宝石更新并且我们在不知不觉中运行bundle update
时,或者就此而言移动应用程序来说测试或生产服务器。通常在向Gemfile添加gem时,我们会这样做:
gem 'rails', '~> 3.2.7'
请注意版本号中的前导~>
。这表示:在版本3.2.7
和小于3.3.0
之间使用rails gem。
要使您的bundle命令获取rails 4.0,您需要更改该行以读取以下任一项:
gem 'rails', '>= 3.2.7'
或
gem 'rails', '4.0.0'
如果您使用gem 'rails', '>= 3.2.7'
,那么您的rails应用程序将使用您系统中可用的最新gem。请注意3.2.7
只是我在这里使用的一个例子。如果您使用gem 'rails', '4.0.0'
,那么您的rails应用程序将使用rails版本4.0.0。
请注意,此更改可能会破坏您现有的rails 3.2应用程序。