使用GemFIle需要至少一个Gem源。例如:
source :rubygems source "http://rubygems.org" source :rubyforge source "http://gems.rubyforge.org" source :gemcutter source "http://gemcutter.org"这里向大家推荐一个淘宝的Gem源,它是一个与rubygems.org定时同步的镜像。
gem source -r http://rubygems.org/ gem source -a http://ruby.taobao.org如果你使用 Bundler 请修改 Gemfile:
source 'http://ruby.taobao.org' # ...
在GemFile中指定你需要用到的Gem,其语法与Ruby所支持的依赖描述方式是一致的:
gem "nokogiri" gem "rails", "3.0.0.beta3" gem "rack", ">=1.0" gem "thin", "~>1.1"
这里的版本描述符符号需要解释以下,例如:
~> 2.0.3
等同于 >= 2.0.3
并且 < 2.1
~> 2.1
等同于 >= 2.1
并且 < 3.0
Require: If a gem's main file is different than the gem name, specify how to require it.
gem "rspec", :require => "spec" gem "sqlite3" gem "gem-release", :require => false gem "redis", :require => ["redis/connection/hiredis", "redis"]
可以直接指定gem的位置:
gem "nokogiri", :path => "~/sw/gems/nokogiri"
还可以使用github的源码来做Gem
gem "nokogiri", :git => "git://github.com/tenderlove/nokogiri.git", :branch => "1.4" git "git://github.com/wycats/thor.git", :tag => "v0.13.4" gem "thor"但是这种用法必须要有gemspec文件。
你可以使用:tag
,
:branch
, or
:ref
来指定分支。