Getting Started
Guides
Dependency Management
- How to manage application dependencies with Bundler
- How to manage dependencies with Bundler
- How to update gems with Bundler
- How to manage groups of gems
- How to install gems from git repositories
- How to develop multiple gems in one repository
- How to use Bundler with Ruby
- How to use Bundler in a single-file Ruby script
- How to deploy bundled applications
Gem Development
Publishing & Security
- Trusted Publishing
- Setting up multi-factor authentication
- Using multi-factor authentication in command line
- Managing owners using UI
- Organizations
- Removing a Published gem
- Security Practices
- How to delay new gem versions with cooldown
Integrations
- How to use Bundler with Rails
- How to use Bundler with Sinatra
- How to use Bundler with Docker
- How to use Bundler in CI
Hosting & Sources
Extending
Troubleshooting
- Troubleshooting common issues
- How to troubleshoot RubyGems and Bundler TLS/SSL Issues
- How to use git bisect with Bundler
Concepts
- What is a gem?
- Gemfile and gemspec
- Where gems are installed and how they load
- How dependency resolution works
- How Gemfile.lock works
- Versioning and compatibility
- Platforms and native gems
- Caching and vendoring
- Default gems and bundled gems
- Common Vulnerabilities and Exposures
Reference
- gem Command Reference
- Bundler Command Reference
- Gemfile Reference
- Ruby Directive
- Specification Reference
- RubyGems.org API
- RubyGems.org Compact Index API
- RubyGems.org rate limits
- API key scopes
- Bundler compatibility with Ruby
- Configuration (.gemrc)
- Environment variables
- Known Bundler Plugins
Appendix
Bundler compatibility with Ruby
Bundler compatibility with Ruby & RubyGems
Bundler and RubyGems are developed in the same repository, ruby/rubygems, and every release ships them as a matching pair. Starting with the 4.0 series they share the same version number. Each Ruby release also bundles a matching pair, for example Ruby 4.0 ships RubyGems 4.0 and Bundler 4.0.
The latest Bundler release supports, at the very least, all Ruby versions that have not yet reached their End of Life date. Its minimum RubyGems version is the RubyGems that shipped with the oldest supported Ruby. RubyGems cannot be downgraded below the version a Ruby shipped with, so any supported Ruby satisfies both requirements out of the box.
The currently supported and recent Bundler series require:
| Bundler | Ruby | RubyGems |
|---|---|---|
| 4.0 | >= 3.2.0 | >= 3.4.1 |
| 2.7 | >= 3.2.0 | >= 3.4.1 |
| 2.6 | >= 3.1.0 | >= 3.3.3 |
| 2.5 | >= 3.0.0 | >= 3.2.3 |
Older series have reached their End of Life. If you need the exact requirements of an old release, check its version page on rubygems.org, which lists the required Ruby and RubyGems versions.
In practice you rarely choose a Bundler version by hand. A project’s Gemfile.lock records the version that created it under BUNDLED WITH, and Bundler automatically switches to that version when you run it. See Installing Bundler for details.