깊이 보기

Gemfile에서 사용 가능한 모든 옵션과 각 옵션의 상세한 사용법은 매뉴얼에 나와 있습니다.
Gemfile 매뉴얼

Gemfiles

Gemfile에는 최소한 하나의 gem 소스가 필요합니다. gem 소스에는 루비젬스 서버가 URL 형식으로 적혀있어야 합니다. bundle init을 실행함으로써 rubygems.org를 소스로 한 기본 값의 Gemfile을 만듭니다. 할 수만 있다면 https를 사용하여 rubygems.org 서버로의 연결이 SSL 인증되도록 하세요.
source 'https://rubygems.org'
필요한 gem을 버전 번호와 함께 선언합니다. 의존성을 지원하기 위한 버전 지정에는 루비젬스에서 사용하는 것과 같은 문법을 사용합니다.
gem 'nokogiri'
gem 'rails', '3.0.0.beta3'
gem 'rack',  '>=1.0'
gem 'thin',  '~>1.1'
>= 1.0 같은 대부분의 버전 지정자는 따로 설명할 필요가 없습니다. ~> 지정자는 특별한 의미가 있습니다. 예제로 설명하겠습니다. ~> 2.0.3>= 2.0.3< 2.1를 함께 사용한 것과 같습니다. ~> 2.1>= 2.1< 3.0을 함께 사용한 것과 같습니다. ~> 2.2.beta2.2.beta.12같은 사전 릴리스 버전과 일치합니다.
루비젬스 버전 지정자
gem의 메인 파일이 gem의 이름과 다르다면, require하는 방법을 지정할 필요가 있습니다.
gem 'rspec', :require => 'spec'
gem 'sqlite3'
:require => false를 지정함으로써 번들러가 gem을 require하는 것을 방지할 수 있습니다. 하지만 여전히 설치와 의존성의 유지보수는 이루어집니다.
gem 'rspec', :require => false
gem 'sqlite3'
Gemfile 안의 gem을 require하려면, 애플리케이션에서 Bundler.require를 호출할 필요가 있습니다.
자세한 내용은: Bundler.require
git 저장소도 유효한 gem 소스입니다. 저장소가 하나 이상의 유효한 gem을 가지고 있다면 말이죠. :tag:branch, :ref로 어느 걸 체크아웃할지 정할 수 있습니다. 기본 값은 master 브랜치입니다.
gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git', :branch => '1.4'
git 저장소가 .gemspec 파일을 가지고 있지 않다면, 번들러가 의존성, 실행 파일, C 확장 설정이 없는 간단한 .gemspec 파일을 생성합니다. 아마도 간단한 gem에서는 동작할 테지만, 동작하지 않을 수도 있습니다. .gemspec 파일이 없다면 git에서 gem을 사용하지 않는 것이 좋습니다.
자세한 내용은: git
파일 시스템에서 직접 gem을 언팩하고 싶다면, :path 옵션에 gem의 파일이 들어있는 경로를 지정하면 간단합니다.
gem 'extracted_library', :path => './vendor/extracted_library'
의존성은 그룹 안에 있을 수 있습니다. 그룹은 설치 시에 무시(--without을 사용)하거나 한 번에 require(Bundler.require를 사용)할 수 있습니다.
gem 'wirble', :group => :development
gem 'debugger', :group => [:development, :test]

group :test do
  gem 'rspec'
end
자세한 내용은: 그룹
Gemfileruby를 사용하여 필요한 루비 버전을 지정할 수 있습니다. Gemfile이 다른 루비 버전에서 로드 되었다면, 번들러는 설명과 함께 예외를 발생시킬 것입니다.
ruby '1.9.3'
이것이 의미하는 것은 1.9.3과 ABI 호환이 있는 루비 VM에 의존성이 있다는 것입니다. 버전을 확인해 맞지 않으면, 번들러는 예외를 발생시킵니다. 이것은 실행 중의 코드가 매치하는지 확인합니다. :engine:engine_version 버전 옵션을 사용해 좀 더 자세한 설정을 할 수 있습니다.
ruby '1.9.3', :engine => 'jruby', :engine_version => '1.6.7'
자세한 내용은: 루비 지시자
Fork me on GitHub
Docs: Previous Version (v1.10) Current Version (v1.11)