Manage your Ruby application's gem dependencies
Switch branches/tags
0-8-stable 0-9-stable 1-0-stable 1-1-stable 1-2-stable 1-3-stable 1-5-stable 1-6-stable 1-7-stable 1-8-stable 1-9-stable 1-10-stable 1-11-stable 1-12-stable 1-13-stable 1-14-stable 1-99-dev 1_13_2_changelog_edit 2-0-dev-archived 2-0-dev 171 3982-clean-rubylib 4064 aa-clearer-sponsorship aa-implicit-ruby-versions aa-revert-4998 auto autobundle checksum default-travis-emails dont_run_git_commands_during_runtime execless fetchers_fetchers_everywhere fix_missing_gem_dir further_disablement gem_tasks gemfile_hashing gh-pages homu-tmp issue-3671 master molinillo new-index old-gem-version parallel_threads platforms refactor-resolver removing_the_spec_gil resolve-running-ruby retry_network rgb-manpage-additions rubygems22_exts seg-bundle-env-markdown seg-bundle-gem-invalid-constant seg-definition-to-ruby seg-exec-outside-bundle seg-filesystem-access-generic-system-error seg-fix-milestone-release seg-implicitly-lock-ruby seg-in-process-tests seg-install-if-eval seg-lock-add-platform-ruby seg-lockfile-corrupted-no-deadlock seg-no-eval-gemfile-twice seg-parallel-travis seg-perf seg-realworld-vcr seg-release-tasks seg-remove-fakeweb seg-remove-pysched-yaml seg-rg-1.3.6 seg-rubocop-update seg-ruby-2-4-spec-compat seg-rubygems-source-print-fetching seg-setup-activate-no-gems seg-sigint-debug-backtrace seg-spec-improvements seg-specs-2.4-fix seg-specs-sinatra-update seg-speedup-spec-deps seg-stub-specification-missing-extensions seg-travis-run-against-setup-rg seg-unit-test-no-internet seg-update-thor seg-windows-force-ruby sources spec-for-3896 test_default_gems travis-docker try unsupported_sources user_agent user_agent2
Nothing to show
Clone or download
Pull request Compare This branch is 1861 commits behind bundler:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Version     Build Status Code Climate Inline docs

Bundler: a gem to bundle gems

Bundler makes sure Ruby applications run the same code on every machine.

It does this by managing the gems that the application depends on. Given a list of gems, it can automatically download and install those gems, as well as any other gems needed by the gems that are listed. Before installing gems, it checks the versions of every gem to make sure that they are compatible, and can all be loaded at the same time. After the gems have been installed, Bundler can help you update some or all of them when new versions become available. Finally, it records the exact versions that have been installed, so that others can install the exact same gems.

Installation and usage

To install:

gem install bundler

Bundler is most commonly used to manage your application's dependencies. To use it for this:

bundle init
echo 'gem "rspec"' >> Gemfile
bundle install
bundle exec rspec

See for the full documentation.


For help with common problems, see TROUBLESHOOTING.

Still stuck? Try filing an issue.


Bundler is maintained by Ruby Together, a grassroots initiative committed to supporting the critical Ruby infrastructure you rely on. Contribute today as an individual or even better, as a company, and ensure that Bundler, RubyGems, and other shared tooling is around for years to come.

Other questions

To see what has changed in recent versions of Bundler, see the CHANGELOG.

To get in touch with the Bundler core team and other Bundler users, please see getting help.


If you'd like to contribute to Bundler, that's awesome, and we <3 you. There's a guide to contributing to Bundler (both code and general help) over in our documentation section.

Code of Conduct

Everyone interacting in the Bundler project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the Bundler code of conduct.