bundler 4.0.10 → 4.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +174 -0
  3. data/bundler.gemspec +2 -2
  4. data/lib/bundler/build_metadata.rb +2 -2
  5. data/lib/bundler/cli/add.rb +3 -0
  6. data/lib/bundler/cli/check.rb +1 -3
  7. data/lib/bundler/cli/common.rb +17 -0
  8. data/lib/bundler/cli/config.rb +8 -3
  9. data/lib/bundler/cli/doctor/diagnose.rb +1 -1
  10. data/lib/bundler/cli/exec.rb +15 -1
  11. data/lib/bundler/cli/gem.rb +2 -3
  12. data/lib/bundler/cli/init.rb +4 -0
  13. data/lib/bundler/cli/install.rb +4 -0
  14. data/lib/bundler/cli/issue.rb +2 -2
  15. data/lib/bundler/cli/lock.rb +10 -2
  16. data/lib/bundler/cli/open.rb +12 -2
  17. data/lib/bundler/cli/outdated.rb +76 -6
  18. data/lib/bundler/cli/update.rb +3 -0
  19. data/lib/bundler/cli.rb +21 -15
  20. data/lib/bundler/compact_index_client/cache.rb +11 -0
  21. data/lib/bundler/compact_index_client/cache_file.rb +1 -1
  22. data/lib/bundler/compact_index_client/parser.rb +4 -1
  23. data/lib/bundler/definition.rb +64 -15
  24. data/lib/bundler/dsl.rb +11 -4
  25. data/lib/bundler/endpoint_specification.rb +30 -2
  26. data/lib/bundler/fetcher/base.rb +3 -0
  27. data/lib/bundler/fetcher/compact_index.rb +13 -0
  28. data/lib/bundler/fetcher/gem_remote_fetcher.rb +2 -0
  29. data/lib/bundler/fetcher.rb +12 -2
  30. data/lib/bundler/gem_helper.rb +2 -2
  31. data/lib/bundler/installer/parallel_installer.rb +68 -23
  32. data/lib/bundler/installer.rb +18 -1
  33. data/lib/bundler/lockfile_generator.rb +55 -1
  34. data/lib/bundler/lockfile_parser.rb +23 -1
  35. data/lib/bundler/man/bundle-add.1 +6 -3
  36. data/lib/bundler/man/bundle-add.1.ronn +7 -2
  37. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  38. data/lib/bundler/man/bundle-cache.1 +4 -1
  39. data/lib/bundler/man/bundle-cache.1.ronn +6 -0
  40. data/lib/bundler/man/bundle-check.1 +1 -1
  41. data/lib/bundler/man/bundle-clean.1 +1 -1
  42. data/lib/bundler/man/bundle-config.1 +121 -157
  43. data/lib/bundler/man/bundle-config.1.ronn +38 -6
  44. data/lib/bundler/man/bundle-console.1 +3 -3
  45. data/lib/bundler/man/bundle-console.1.ronn +2 -2
  46. data/lib/bundler/man/bundle-doctor.1 +1 -1
  47. data/lib/bundler/man/bundle-env.1 +1 -1
  48. data/lib/bundler/man/bundle-exec.1 +1 -1
  49. data/lib/bundler/man/bundle-fund.1 +1 -1
  50. data/lib/bundler/man/bundle-gem.1 +1 -1
  51. data/lib/bundler/man/bundle-help.1 +1 -1
  52. data/lib/bundler/man/bundle-info.1 +1 -1
  53. data/lib/bundler/man/bundle-init.1 +2 -2
  54. data/lib/bundler/man/bundle-init.1.ronn +1 -1
  55. data/lib/bundler/man/bundle-install.1 +5 -2
  56. data/lib/bundler/man/bundle-install.1.ronn +9 -1
  57. data/lib/bundler/man/bundle-issue.1 +1 -1
  58. data/lib/bundler/man/bundle-licenses.1 +1 -1
  59. data/lib/bundler/man/bundle-list.1 +1 -1
  60. data/lib/bundler/man/bundle-lock.1 +5 -2
  61. data/lib/bundler/man/bundle-lock.1.ronn +6 -0
  62. data/lib/bundler/man/bundle-open.1 +1 -1
  63. data/lib/bundler/man/bundle-outdated.1 +17 -14
  64. data/lib/bundler/man/bundle-outdated.1.ronn +25 -12
  65. data/lib/bundler/man/bundle-platform.1 +5 -1
  66. data/lib/bundler/man/bundle-platform.1.ronn +4 -0
  67. data/lib/bundler/man/bundle-plugin.1 +2 -2
  68. data/lib/bundler/man/bundle-plugin.1.ronn +1 -1
  69. data/lib/bundler/man/bundle-pristine.1 +1 -1
  70. data/lib/bundler/man/bundle-remove.1 +1 -1
  71. data/lib/bundler/man/bundle-show.1 +1 -1
  72. data/lib/bundler/man/bundle-update.1 +5 -2
  73. data/lib/bundler/man/bundle-update.1.ronn +8 -0
  74. data/lib/bundler/man/bundle-version.1 +1 -1
  75. data/lib/bundler/man/bundle.1 +23 -2
  76. data/lib/bundler/man/bundle.1.ronn +22 -1
  77. data/lib/bundler/man/gemfile.5 +14 -3
  78. data/lib/bundler/man/gemfile.5.ronn +23 -2
  79. data/lib/bundler/mirror.rb +7 -7
  80. data/lib/bundler/plugin/unloaded_source.rb +25 -0
  81. data/lib/bundler/plugin.rb +12 -6
  82. data/lib/bundler/remote_specification.rb +1 -1
  83. data/lib/bundler/resolver/base.rb +9 -0
  84. data/lib/bundler/resolver.rb +116 -2
  85. data/lib/bundler/rubygems_ext.rb +22 -0
  86. data/lib/bundler/rubygems_gem_installer.rb +35 -2
  87. data/lib/bundler/runtime.rb +11 -11
  88. data/lib/bundler/self_manager.rb +6 -1
  89. data/lib/bundler/settings.rb +1 -0
  90. data/lib/bundler/shared_helpers.rb +21 -1
  91. data/lib/bundler/source/git/git_proxy.rb +83 -10
  92. data/lib/bundler/source/git.rb +4 -4
  93. data/lib/bundler/source/metadata.rb +4 -0
  94. data/lib/bundler/source/path.rb +4 -3
  95. data/lib/bundler/source/rubygems/remote.rb +12 -2
  96. data/lib/bundler/source/rubygems.rb +81 -13
  97. data/lib/bundler/source_list.rb +44 -3
  98. data/lib/bundler/spec_set.rb +2 -2
  99. data/lib/bundler/stub_specification.rb +3 -1
  100. data/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  101. data/lib/bundler/vendored_tsort.rb +19 -2
  102. data/lib/bundler/version.rb +1 -1
  103. data/lib/bundler.rb +26 -6
  104. metadata +5 -6
  105. data/lib/bundler/vendor/tsort/LICENSE.txt +0 -22
  106. data/lib/bundler/vendor/tsort/lib/tsort.rb +0 -455
@@ -63,6 +63,11 @@ module Bundler
63
63
  Bundler.create_bundle_path
64
64
 
65
65
  ProcessLock.lock do
66
+ # Invalidate any stale gem specification cache from before we acquired the lock.
67
+ # Another process may have installed gems while we were waiting.
68
+ Gem::Specification.reset
69
+ @definition.sources.clear_cache
70
+
66
71
  @definition.ensure_equivalent_gemfile_and_lockfile(options[:deployment])
67
72
 
68
73
  if @definition.dependencies.empty?
@@ -78,6 +83,12 @@ module Bundler
78
83
  install(options)
79
84
 
80
85
  Gem::Specification.reset # invalidate gem specification cache so that installed gems are immediately available
86
+ # Drop the source caches too, since releasing resolution memory dropped
87
+ # the source indexes. A resolution happening after this point would
88
+ # otherwise rebuild them around a snapshot of installed gems taken
89
+ # before the install, and materialize against remote specs that don't
90
+ # know where the gems they stand for ended up.
91
+ @definition.sources.clear_cache
81
92
 
82
93
  lock
83
94
  Standalone.new(options[:standalone], @definition).generate if options[:standalone]
@@ -190,7 +201,13 @@ module Bundler
190
201
  force = options[:force]
191
202
  local = options[:local] || options[:"prefer-local"]
192
203
  jobs = Bundler.settings.installation_parallelization
193
- spec_installations = ParallelInstaller.call(self, @definition.specs, jobs, standalone, force, local: local)
204
+ specs = @definition.specs
205
+ # Installing default gems may need the remote index again to cache
206
+ # their .gem files, so keep resolution memory around in that case.
207
+ # The bundler spec itself is excluded because it comes from the
208
+ # metadata source and never goes through that path.
209
+ @definition.release_resolution_memory! if specs.none? {|s| s.default_gem? && s.source.is_a?(Source::Rubygems) }
210
+ spec_installations = ParallelInstaller.call(self, specs, jobs, standalone, force, local: local)
194
211
  spec_installations.each do |installation|
195
212
  post_install_messages[installation.name] = installation.post_install_message if installation.has_post_install_message?
196
213
  end
@@ -71,7 +71,8 @@ module Bundler
71
71
  checksums = definition.resolve.map do |spec|
72
72
  spec.source.checksum_store.to_lock(spec)
73
73
  end
74
- add_section("CHECKSUMS", checksums)
74
+
75
+ add_section("CHECKSUMS", checksums + bundler_checksum)
75
76
  end
76
77
 
77
78
  def add_locked_ruby_version
@@ -100,5 +101,58 @@ module Bundler
100
101
  raise ArgumentError, "#{value.inspect} can't be serialized in a lockfile"
101
102
  end
102
103
  end
104
+
105
+ def bundler_checksum
106
+ # In frozen mode the lockfile can't change, so reproduce whatever bundler
107
+ # entry is already locked instead of recording one for the running bundler
108
+ # version, which may legitimately differ from the locked one.
109
+ return locked_bundler_checksum if Bundler.frozen_bundle?
110
+
111
+ # `.dev` versions and `SKIP_BUNDLER_CHECKSUM` are deliberate opt-outs (used
112
+ # by Bundler/RubyGems' own development and release tasks): never record a
113
+ # checksum for Bundler itself in those cases.
114
+ return [] if Bundler.gem_version.to_s.end_with?(".dev") || ENV["SKIP_BUNDLER_CHECKSUM"]
115
+
116
+ bundler_spec = definition.sources.metadata_source.specs.search(["bundler", Bundler.gem_version]).last
117
+
118
+ # Record a fresh checksum from the locally cached gem when it's available.
119
+ # When it isn't (e.g. a fresh checkout/CI that never downloaded the bundler
120
+ # gem), fall back to whatever checksum is already locked rather than
121
+ # dropping it, so the entry stays consistent across environments.
122
+ if File.exist?(bundler_spec.cache_file)
123
+ require "rubygems/package"
124
+
125
+ package = Gem::Package.new(bundler_spec.cache_file)
126
+ definition.sources.metadata_source.checksum_store.register(bundler_spec, Checksum.from_gem_package(package))
127
+ elsif bundled_with_changing?
128
+ # We can't compute a fresh checksum (the bundler gem isn't cached) and the
129
+ # BUNDLED WITH version is changing. Keeping the previously locked checksum
130
+ # would leave a `bundler (<old version>) sha256=...` entry that no longer
131
+ # matches the new BUNDLED WITH version, so drop it instead.
132
+ return []
133
+ end
134
+
135
+ return [] if definition.sources.metadata_source.checksum_store.missing?(bundler_spec)
136
+
137
+ [definition.sources.metadata_source.checksum_store.to_lock(bundler_spec)]
138
+ end
139
+
140
+ def bundled_with_changing?
141
+ locked_gems = definition.locked_gems
142
+ return false unless locked_gems
143
+
144
+ locked_gems.bundler_version != definition.bundler_version_to_lock
145
+ end
146
+
147
+ def locked_bundler_checksum
148
+ locked_version = definition.locked_gems&.bundler_version
149
+ return [] unless locked_version
150
+
151
+ metadata_source = definition.sources.metadata_source
152
+ locked_spec = LazySpecification.new("bundler", locked_version, Gem::Platform::RUBY, metadata_source)
153
+ return [] if metadata_source.checksum_store.missing?(locked_spec)
154
+
155
+ [metadata_source.checksum_store.to_lock(locked_spec)]
156
+ end
103
157
  end
104
158
  end
@@ -28,6 +28,7 @@ module Bundler
28
28
 
29
29
  attr_reader(
30
30
  :sources,
31
+ :metadata_source,
31
32
  :dependencies,
32
33
  :specs,
33
34
  :platforms,
@@ -97,6 +98,7 @@ module Bundler
97
98
  def initialize(lockfile, strict: false)
98
99
  @platforms = []
99
100
  @sources = []
101
+ @metadata_source = Source::Metadata.new
100
102
  @dependencies = {}
101
103
  @parse_method = nil
102
104
  @specs = {}
@@ -113,6 +115,17 @@ module Bundler
113
115
  "Run `git checkout HEAD -- #{@lockfile_path}` first to get a clean lock."
114
116
  end
115
117
 
118
+ @valid = lockfile.strip.empty? ||
119
+ lockfile.split(/(?:\r?\n)+/).any? {|l| KNOWN_SECTIONS.include?(l) }
120
+
121
+ unless @valid
122
+ SharedHelpers.feature_deprecated!(
123
+ "Your #{@lockfile_path} does not appear to be a valid lockfile. " \
124
+ "Run `rm #{@lockfile_path}` and then `bundle install` to generate a new lockfile. " \
125
+ "This will raise a LockfileError in a future version of Bundler."
126
+ )
127
+ end
128
+
116
129
  lockfile.split(/((?:\r?\n)+)/) do |line|
117
130
  # split alternates between the line and the following whitespace
118
131
  next @pos.advance!(line) if line.match?(/^\s*$/)
@@ -162,6 +175,10 @@ module Bundler
162
175
  bundler_version.nil? || bundler_version < Gem::Version.new("1.16.2")
163
176
  end
164
177
 
178
+ def valid?
179
+ @valid
180
+ end
181
+
165
182
  private
166
183
 
167
184
  TYPES = {
@@ -252,7 +269,12 @@ module Bundler
252
269
  version = Gem::Version.new(version)
253
270
  platform = platform ? Gem::Platform.new(platform) : Gem::Platform::RUBY
254
271
  full_name = Gem::NameTuple.new(name, version, platform).full_name
255
- return unless spec = @specs[full_name]
272
+ spec = @specs[full_name]
273
+
274
+ if name == "bundler"
275
+ spec ||= LazySpecification.new(name, version, platform, @metadata_source)
276
+ end
277
+ return unless spec
256
278
 
257
279
  if checksums
258
280
  checksums.split(",") do |lock_checksum|
@@ -1,10 +1,10 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-ADD" "1" "March 2026" ""
3
+ .TH "BUNDLE\-ADD" "1" "April 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
6
6
  .SH "SYNOPSIS"
7
- \fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-path=PATH] [\-\-git=GIT|\-\-github=GITHUB] [\-\-branch=BRANCH] [\-\-ref=REF] [\-\-quiet] [\-\-skip\-install] [\-\-strict|\-\-optimistic]
7
+ \fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-path=PATH] [\-\-git=GIT|\-\-github=GITHUB] [\-\-branch=BRANCH] [\-\-ref=REF] [\-\-cooldown=NUMBER] [\-\-quiet] [\-\-skip\-install] [\-\-strict|\-\-optimistic]
8
8
  .SH "DESCRIPTION"
9
9
  Adds the named gem to the [\fBGemfile(5)\fR][Gemfile(5)] and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
10
10
  .SH "OPTIONS"
@@ -50,6 +50,9 @@ Adds optimistic declaration of version\.
50
50
  .TP
51
51
  \fB\-\-strict\fR
52
52
  Adds strict declaration of version\.
53
+ .TP
54
+ \fB\-\-cooldown=<number>\fR
55
+ Only consider gem versions published at least \fInumber\fR days ago when resolving\. Pass \fB0\fR to disable cooldown for this run\. See \fBcooldown\fR in bundle\-config(1) for precedence rules\.
53
56
  .SH "EXAMPLES"
54
57
  .IP "1." 4
55
58
  You can add the \fBrails\fR gem to the Gemfile without any version restriction\. The source of the gem will be the global source\.
@@ -73,4 +76,4 @@ You can assign the gem to more than one group\.
73
76
  \fBbundle add rails \-\-group "development, test"\fR
74
77
  .IP "" 0
75
78
  .SH "SEE ALSO"
76
- Gemfile(5) \fIhttps://bundler\.io/man/gemfile\.5\.html\fR, bundle\-remove(1) \fIbundle\-remove\.1\.html\fR
79
+ Gemfile(5) \fIhttps://guides\.rubygems\.org/gemfile/\fR, bundle\-remove(1) \fIbundle\-remove\.1\.html\fR
@@ -5,7 +5,7 @@ bundle-add(1) -- Add gem to the Gemfile and run bundle install
5
5
 
6
6
  `bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE]
7
7
  [--path=PATH] [--git=GIT|--github=GITHUB] [--branch=BRANCH] [--ref=REF]
8
- [--quiet] [--skip-install] [--strict|--optimistic]
8
+ [--cooldown=NUMBER] [--quiet] [--skip-install] [--strict|--optimistic]
9
9
 
10
10
  ## DESCRIPTION
11
11
 
@@ -56,6 +56,11 @@ Adds the named gem to the [`Gemfile(5)`][Gemfile(5)] and run `bundle install`.
56
56
  * `--strict`:
57
57
  Adds strict declaration of version.
58
58
 
59
+ * `--cooldown=<number>`:
60
+ Only consider gem versions published at least <number> days ago when
61
+ resolving. Pass `0` to disable cooldown for this run. See `cooldown`
62
+ in bundle-config(1) for precedence rules.
63
+
59
64
  ## EXAMPLES
60
65
 
61
66
  1. You can add the `rails` gem to the Gemfile without any version restriction.
@@ -83,5 +88,5 @@ Adds the named gem to the [`Gemfile(5)`][Gemfile(5)] and run `bundle install`.
83
88
 
84
89
  ## SEE ALSO
85
90
 
86
- [Gemfile(5)](https://bundler.io/man/gemfile.5.html),
91
+ [Gemfile(5)](https://guides.rubygems.org/gemfile/),
87
92
  [bundle-remove(1)](bundle-remove.1.html)
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-BINSTUBS" "1" "March 2026" ""
3
+ .TH "BUNDLE\-BINSTUBS" "1" "April 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CACHE" "1" "March 2026" ""
3
+ .TH "BUNDLE\-CACHE" "1" "April 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
6
6
  .SH "SYNOPSIS"
@@ -17,6 +17,9 @@ Include gems for all platforms present in the lockfile, not only the current one
17
17
  \fB\-\-cache\-path=CACHE\-PATH\fR
18
18
  Specify a different cache path than the default (vendor/cache)\.
19
19
  .TP
20
+ \fB\-\-cooldown=<number>\fR
21
+ Only consider gem versions published at least \fInumber\fR days ago when resolving before caching\. Pass \fB0\fR to disable cooldown for this run, overriding any per\-source or global configuration\. See \fBcooldown\fR in bundle\-config(1)\.
22
+ .TP
20
23
  \fB\-\-gemfile=GEMFILE\fR
21
24
  Use the specified gemfile instead of Gemfile\.
22
25
  .TP
@@ -21,6 +21,12 @@ use the gems in the cache in preference to the ones on `rubygems.org`.
21
21
  * `--cache-path=CACHE-PATH`:
22
22
  Specify a different cache path than the default (vendor/cache).
23
23
 
24
+ * `--cooldown=<number>`:
25
+ Only consider gem versions published at least <number> days ago when
26
+ resolving before caching. Pass `0` to disable cooldown for this run,
27
+ overriding any per-source or global configuration. See `cooldown` in
28
+ bundle-config(1).
29
+
24
30
  * `--gemfile=GEMFILE`:
25
31
  Use the specified gemfile instead of Gemfile.
26
32
 
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CHECK" "1" "March 2026" ""
3
+ .TH "BUNDLE\-CHECK" "1" "April 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CLEAN" "1" "March 2026" ""
3
+ .TH "BUNDLE\-CLEAN" "1" "April 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CONFIG" "1" "March 2026" ""
3
+ .TH "BUNDLE\-CONFIG" "1" "April 2026" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
6
6
  .SH "SYNOPSIS"
@@ -69,162 +69,126 @@ The canonical form of this configuration is \fB"without"\fR\. To convert the can
69
69
  Any periods in the configuration keys must be replaced with two underscores when setting it via environment variables\. The configuration key \fBlocal\.rack\fR becomes the environment variable \fBBUNDLE_LOCAL__RACK\fR\.
70
70
  .SH "LIST OF AVAILABLE KEYS"
71
71
  The following is a list of all configuration keys and their purpose\. You can learn more about their operation in bundle install(1) \fIbundle\-install\.1\.html\fR\.
72
- .TP
73
- \fBapi_request_size\fR (\fBBUNDLE_API_REQUEST_SIZE\fR)
74
- Configure how many dependencies to fetch when resolving the specifications\. This configuration is only used when fetchig specifications from RubyGems servers that didn't implement the Compact Index API\. Defaults to 100\.
75
- .TP
76
- \fBauto_install\fR (\fBBUNDLE_AUTO_INSTALL\fR)
77
- Automatically run \fBbundle install\fR when gems are missing\.
78
- .TP
79
- \fBbin\fR (\fBBUNDLE_BIN\fR)
80
- If configured, \fBbundle binstubs\fR will install executables from gems in the bundle to the specified directory\. Otherwise it will create them in a \fBbin\fR directory relative to the Gemfile directory\. These executables run in Bundler's context\. If used, you might add this directory to your environment's \fBPATH\fR variable\. For instance, if the \fBrails\fR gem comes with a \fBrails\fR executable, \fBbundle binstubs\fR will create a \fBbin/rails\fR executable that ensures that all referred dependencies will be resolved using the bundled gems\.
81
- .TP
82
- \fBcache_all\fR (\fBBUNDLE_CACHE_ALL\fR)
83
- Cache all gems, including path and git gems\. This needs to be explicitly before bundler 4, but will be the default on bundler 4\.
84
- .TP
85
- \fBcache_all_platforms\fR (\fBBUNDLE_CACHE_ALL_PLATFORMS\fR)
86
- Cache gems for all platforms\.
87
- .TP
88
- \fBcache_path\fR (\fBBUNDLE_CACHE_PATH\fR)
89
- The directory that bundler will place cached gems in when running \fBbundle package\fR, and that bundler will look in when installing gems\. Defaults to \fBvendor/cache\fR\.
90
- .TP
91
- \fBclean\fR (\fBBUNDLE_CLEAN\fR)
92
- Whether Bundler should run \fBbundle clean\fR automatically after \fBbundle install\fR\. Defaults to \fBtrue\fR in Bundler 4, as long as \fBpath\fR is not explicitly configured\.
93
- .TP
94
- \fBconsole\fR (\fBBUNDLE_CONSOLE\fR)
95
- The console that \fBbundle console\fR starts\. Defaults to \fBirb\fR\.
96
- .TP
97
- \fBdefault_cli_command\fR (\fBBUNDLE_DEFAULT_CLI_COMMAND\fR)
98
- The command that running \fBbundle\fR without arguments should run\. Defaults to \fBcli_help\fR since Bundler 4, but can also be \fBinstall\fR which was the previous default\.
99
- .TP
100
- \fBdeployment\fR (\fBBUNDLE_DEPLOYMENT\fR)
101
- Equivalent to setting \fBfrozen\fR to \fBtrue\fR and \fBpath\fR to \fBvendor/bundle\fR\.
102
- .TP
103
- \fBdisable_checksum_validation\fR (\fBBUNDLE_DISABLE_CHECKSUM_VALIDATION\fR)
104
- Allow installing gems even if they do not match the checksum provided by RubyGems\.
105
- .TP
106
- \fBdisable_exec_load\fR (\fBBUNDLE_DISABLE_EXEC_LOAD\fR)
107
- Stop Bundler from using \fBload\fR to launch an executable in\-process in \fBbundle exec\fR\.
108
- .TP
109
- \fBdisable_local_branch_check\fR (\fBBUNDLE_DISABLE_LOCAL_BRANCH_CHECK\fR)
110
- Allow Bundler to use a local git override without a branch specified in the Gemfile\.
111
- .TP
112
- \fBdisable_local_revision_check\fR (\fBBUNDLE_DISABLE_LOCAL_REVISION_CHECK\fR)
113
- Allow Bundler to use a local git override without checking if the revision present in the lockfile is present in the repository\.
114
- .TP
115
- \fBdisable_shared_gems\fR (\fBBUNDLE_DISABLE_SHARED_GEMS\fR)
116
- Stop Bundler from accessing gems installed to RubyGems' normal location\.
117
- .TP
118
- \fBdisable_version_check\fR (\fBBUNDLE_DISABLE_VERSION_CHECK\fR)
119
- Stop Bundler from checking if a newer Bundler version is available on rubygems\.org\.
120
- .TP
121
- \fBforce_ruby_platform\fR (\fBBUNDLE_FORCE_RUBY_PLATFORM\fR)
122
- Ignore the current machine's platform and install only \fBruby\fR platform gems\. As a result, gems with native extensions will be compiled from source\.
123
- .TP
124
- \fBfrozen\fR (\fBBUNDLE_FROZEN\fR)
125
- Disallow any automatic changes to \fBGemfile\.lock\fR\. Bundler commands will be blocked unless the lockfile can be installed exactly as written\. Usually this will happen when changing the \fBGemfile\fR manually and forgetting to update the lockfile through \fBbundle lock\fR or \fBbundle install\fR\.
126
- .TP
127
- \fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR)
128
- Sets a GitHub username or organization to be used in the \fBREADME\fR and \fB\.gemspec\fR files when you create a new gem via \fBbundle gem\fR command\. It can be overridden by passing an explicit \fB\-\-github\-username\fR flag to \fBbundle gem\fR\.
129
- .TP
130
- \fBgem\.push_key\fR (\fBBUNDLE_GEM__PUSH_KEY\fR)
131
- Sets the \fB\-\-key\fR parameter for \fBgem push\fR when using the \fBrake release\fR command with a private gemstash server\.
132
- .TP
133
- \fBgemfile\fR (\fBBUNDLE_GEMFILE\fR)
134
- The name of the file that bundler should use as the \fBGemfile\fR\. This location of this file also sets the root of the project, which is used to resolve relative paths in the \fBGemfile\fR, among other things\. By default, bundler will search up from the current working directory until it finds a \fBGemfile\fR\.
135
- .TP
136
- \fBglobal_gem_cache\fR (\fBBUNDLE_GLOBAL_GEM_CACHE\fR)
137
- Whether Bundler should cache all gems and compiled extensions globally, rather than locally to the configured installation path\.
138
- .TP
139
- \fBignore_funding_requests\fR (\fBBUNDLE_IGNORE_FUNDING_REQUESTS\fR)
140
- When set, no funding requests will be printed\.
141
- .TP
142
- \fBignore_messages\fR (\fBBUNDLE_IGNORE_MESSAGES\fR)
143
- When set, no post install messages will be printed\. To silence a single gem, use dot notation like \fBignore_messages\.httparty true\fR\.
144
- .TP
145
- \fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR)
146
- Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.
147
- .TP
148
- \fBjobs\fR (\fBBUNDLE_JOBS\fR)
149
- The number of gems Bundler can download and install in parallel\. Defaults to the number of available processors\.
150
- .TP
151
- \fBlockfile\fR (\fBBUNDLE_LOCKFILE\fR)
152
- The path to the lockfile that bundler should use\. By default, Bundler adds \fB\.lock\fR to the end of the \fBgemfile\fR entry\. Can be set to \fBfalse\fR in the Gemfile to disable lockfile creation entirely (see gemfile(5))\.
153
- .TP
154
- \fBlockfile_checksums\fR (\fBBUNDLE_LOCKFILE_CHECKSUMS\fR)
155
- Whether Bundler should include a checksums section in new lockfiles, to protect from compromised gem sources\. Defaults to true\.
156
- .TP
157
- \fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR)
158
- Whether \fBbundle package\fR should skip installing gems\.
159
- .TP
160
- \fBno_prune\fR (\fBBUNDLE_NO_PRUNE\fR)
161
- Whether Bundler should leave outdated gems unpruned when caching\.
162
- .TP
163
- \fBonly\fR (\fBBUNDLE_ONLY\fR)
164
- A space\-separated list of groups to install only gems of the specified groups\. Please check carefully if you want to install also gems without a group, because they get put inside \fBdefault\fR group\. For example \fBonly test:default\fR will install all gems specified in test group and without one\.
165
- .TP
166
- \fBpath\fR (\fBBUNDLE_PATH\fR)
167
- The location on disk where all gems in your bundle will be located regardless of \fB$GEM_HOME\fR or \fB$GEM_PATH\fR values\. Bundle gems not found in this location will be installed by \fBbundle install\fR\. When not set, Bundler install by default to a \fB\.bundle\fR directory relative to repository root in Bundler 4, and to the default system path (\fBGem\.dir\fR) before Bundler 4\. That means that before Bundler 4, Bundler shares this location with Rubygems, and \fBgem install \|\.\|\.\|\.\fR will have gems installed in the same location and therefore, gems installed without \fBpath\fR set will show up by calling \fBgem list\fR\. This will not be the case in Bundler 4\.
168
- .TP
169
- \fBpath\.system\fR (\fBBUNDLE_PATH__SYSTEM\fR)
170
- Whether Bundler will install gems into the default system path (\fBGem\.dir\fR)\.
171
- .TP
172
- \fBplugins\fR (\fBBUNDLE_PLUGINS\fR)
173
- Enable Bundler's experimental plugin system\.
174
- .TP
175
- \fBprefer_patch\fR (BUNDLE_PREFER_PATCH)
176
- Prefer updating only to next patch version during updates\. Makes \fBbundle update\fR calls equivalent to \fBbundler update \-\-patch\fR\.
177
- .TP
178
- \fBredirect\fR (\fBBUNDLE_REDIRECT\fR)
179
- The number of redirects allowed for network requests\. Defaults to \fB5\fR\.
180
- .TP
181
- \fBretry\fR (\fBBUNDLE_RETRY\fR)
182
- The number of times to retry failed network requests\. Defaults to \fB3\fR\.
183
- .TP
184
- \fBshebang\fR (\fBBUNDLE_SHEBANG\fR)
185
- The program name that should be invoked for generated binstubs\. Defaults to the ruby install name used to generate the binstub\.
186
- .TP
187
- \fBsilence_deprecations\fR (\fBBUNDLE_SILENCE_DEPRECATIONS\fR)
188
- Whether Bundler should silence deprecation warnings for behavior that will be changed in the next major version\.
189
- .TP
190
- \fBsilence_root_warning\fR (\fBBUNDLE_SILENCE_ROOT_WARNING\fR)
191
- Silence the warning Bundler prints when installing gems as root\.
192
- .TP
193
- \fBsimulate_version\fR (\fBBUNDLE_SIMULATE_VERSION\fR)
194
- The virtual version Bundler should use for activating feature flags\. Can be used to simulate all the new functionality that will be enabled in a future major version\.
195
- .TP
196
- \fBssl_ca_cert\fR (\fBBUNDLE_SSL_CA_CERT\fR)
197
- Path to a designated CA certificate file or folder containing multiple certificates for trusted CAs in PEM format\.
198
- .TP
199
- \fBssl_client_cert\fR (\fBBUNDLE_SSL_CLIENT_CERT\fR)
200
- Path to a designated file containing a X\.509 client certificate and key in PEM format\.
201
- .TP
202
- \fBssl_verify_mode\fR (\fBBUNDLE_SSL_VERIFY_MODE\fR)
203
- The SSL verification mode Bundler uses when making HTTPS requests\. Defaults to verify peer\.
204
- .TP
205
- \fBsystem_bindir\fR (\fBBUNDLE_SYSTEM_BINDIR\fR)
206
- The location where RubyGems installs binstubs\. Defaults to \fBGem\.bindir\fR\.
207
- .TP
208
- \fBtimeout\fR (\fBBUNDLE_TIMEOUT\fR)
209
- The seconds allowed before timing out for network requests\. Defaults to \fB10\fR\.
210
- .TP
211
- \fBupdate_requires_all_flag\fR (\fBBUNDLE_UPDATE_REQUIRES_ALL_FLAG\fR)
212
- Require passing \fB\-\-all\fR to \fBbundle update\fR when everything should be updated, and disallow passing no options to \fBbundle update\fR\.
213
- .TP
214
- \fBuser_agent\fR (\fBBUNDLE_USER_AGENT\fR)
215
- The custom user agent fragment Bundler includes in API requests\.
216
- .TP
217
- \fBverbose\fR (\fBBUNDLE_VERBOSE\fR)
218
- Whether Bundler should print verbose output\. Defaults to \fBfalse\fR, unless the \fB\-\-verbose\fR CLI flag is used\.
219
- .TP
220
- \fBversion\fR (\fBBUNDLE_VERSION\fR)
221
- The version of Bundler to use when running under Bundler environment\. Defaults to \fBlockfile\fR\. You can also specify \fBsystem\fR or \fBx\.y\.z\fR\. \fBlockfile\fR will use the Bundler version specified in the \fBGemfile\.lock\fR, \fBsystem\fR will use the system version of Bundler, and \fBx\.y\.z\fR will use the specified version of Bundler\.
222
- .TP
223
- \fBwith\fR (\fBBUNDLE_WITH\fR)
224
- A space\-separated or \fB:\fR\-separated list of groups whose gems bundler should install\.
225
- .TP
226
- \fBwithout\fR (\fBBUNDLE_WITHOUT\fR)
227
- A space\-separated or \fB:\fR\-separated list of groups whose gems bundler should not install\.
72
+ .IP "\(bu" 4
73
+ \fBapi_request_size\fR (\fBBUNDLE_API_REQUEST_SIZE\fR): Configure how many dependencies to fetch when resolving the specifications\. This configuration is only used when fetchig specifications from RubyGems servers that didn't implement the Compact Index API\. Defaults to 100\.
74
+ .IP "\(bu" 4
75
+ \fBauto_install\fR (\fBBUNDLE_AUTO_INSTALL\fR): Automatically run \fBbundle install\fR when gems are missing\.
76
+ .IP "\(bu" 4
77
+ \fBbin\fR (\fBBUNDLE_BIN\fR): If configured, \fBbundle binstubs\fR will install executables from gems in the bundle to the specified directory\. Otherwise it will create them in a \fBbin\fR directory relative to the Gemfile directory\. These executables run in Bundler's context\. If used, you might add this directory to your environment's \fBPATH\fR variable\. For instance, if the \fBrails\fR gem comes with a \fBrails\fR executable, \fBbundle binstubs\fR will create a \fBbin/rails\fR executable that ensures that all referred dependencies will be resolved using the bundled gems\.
78
+ .IP "\(bu" 4
79
+ \fBcache_all\fR (\fBBUNDLE_CACHE_ALL\fR): Cache all gems, including path and git gems\. This needs to be explicitly before bundler 4, but will be the default on bundler 4\.
80
+ .IP "\(bu" 4
81
+ \fBcache_all_platforms\fR (\fBBUNDLE_CACHE_ALL_PLATFORMS\fR): Cache gems for all platforms\.
82
+ .IP "\(bu" 4
83
+ \fBcache_path\fR (\fBBUNDLE_CACHE_PATH\fR): The directory that bundler will place cached gems in when running \fBbundle package\fR, and that bundler will look in when installing gems\. Defaults to \fBvendor/cache\fR\.
84
+ .IP "\(bu" 4
85
+ \fBclean\fR (\fBBUNDLE_CLEAN\fR): Whether Bundler should run \fBbundle clean\fR automatically after \fBbundle install\fR\. Defaults to \fBtrue\fR in Bundler 5, as long as \fBpath\fR is not explicitly configured\.
86
+ .IP "\(bu" 4
87
+ \fBconsole\fR (\fBBUNDLE_CONSOLE\fR): The console that \fBbundle console\fR starts\. Defaults to \fBirb\fR\.
88
+ .IP "\(bu" 4
89
+ \fBcooldown\fR (\fBBUNDLE_COOLDOWN\fR): Number of days a published gem version must age before bundler will resolve to it\. Defaults to unset (no cooldown)\. Pass \fB0\fR to disable cooldown for an individual run\.
90
+ .IP
91
+ The effective cooldown for any given gem is resolved from three layers, highest precedence first:
92
+ .IP "1." 4
93
+ CLI flag \fB\-\-cooldown N\fR on \fBinstall\fR, \fBupdate\fR, \fBadd\fR, and \fBoutdated\fR\.
94
+ .IP "2." 4
95
+ This setting (\fBbundle config set cooldown N\fR or \fBBUNDLE_COOLDOWN=N\fR)\.
96
+ .IP "3." 4
97
+ The per\-source \fBcooldown:\fR keyword in the Gemfile, such as \fBsource "https://rubygems\.org", cooldown: 7\fR\.
98
+ .IP "" 0
99
+ .IP
100
+ The CLI flag and this setting apply uniformly to every source, including ones declared with their own \fBcooldown:\fR value\. To keep a private registry permanently exempt while still cooling down public gems, declare \fBsource "https://internal", cooldown: 0\fR in the Gemfile; remember that \fB\-\-cooldown N\fR on the command line will still override it for that single run\.
101
+ .IP
102
+ Cooldown filtering depends on the gem server providing a per\-version \fBcreated_at\fR timestamp in the v2 compact\-index format\. Versions without that metadata \- older gem servers, historical entries that predate the v2 cutover on \fBrubygems\.org\fR, or private registries that still emit the v1 format \- are treated as outside the cooldown window and remain resolvable\. If you rely on cooldown for supply\-chain protection, confirm that the gem server emits \fBcreated_at\fR in its \fB/info/<gem>\fR responses\.
103
+ .IP "\(bu" 4
104
+ \fBdefault_cli_command\fR (\fBBUNDLE_DEFAULT_CLI_COMMAND\fR): The command that running \fBbundle\fR without arguments should run\. Defaults to \fBcli_help\fR since Bundler 4, but can also be \fBinstall\fR which was the previous default\.
105
+ .IP "\(bu" 4
106
+ \fBdeployment\fR (\fBBUNDLE_DEPLOYMENT\fR): Equivalent to setting \fBfrozen\fR to \fBtrue\fR and \fBpath\fR to \fBvendor/bundle\fR\.
107
+ .IP "\(bu" 4
108
+ \fBdisable_checksum_validation\fR (\fBBUNDLE_DISABLE_CHECKSUM_VALIDATION\fR): Allow installing gems even if they do not match the checksum provided by RubyGems\.
109
+ .IP "\(bu" 4
110
+ \fBdisable_exec_load\fR (\fBBUNDLE_DISABLE_EXEC_LOAD\fR): Stop Bundler from using \fBload\fR to launch an executable in\-process in \fBbundle exec\fR\.
111
+ .IP "\(bu" 4
112
+ \fBdisable_local_branch_check\fR (\fBBUNDLE_DISABLE_LOCAL_BRANCH_CHECK\fR): Allow Bundler to use a local git override without a branch specified in the Gemfile\.
113
+ .IP "\(bu" 4
114
+ \fBdisable_local_revision_check\fR (\fBBUNDLE_DISABLE_LOCAL_REVISION_CHECK\fR): Allow Bundler to use a local git override without checking if the revision present in the lockfile is present in the repository\.
115
+ .IP "\(bu" 4
116
+ \fBdisable_shared_gems\fR (\fBBUNDLE_DISABLE_SHARED_GEMS\fR): Stop Bundler from accessing gems installed to RubyGems' normal location\.
117
+ .IP "\(bu" 4
118
+ \fBdisable_version_check\fR (\fBBUNDLE_DISABLE_VERSION_CHECK\fR): Stop Bundler from checking if a newer Bundler version is available on rubygems\.org\.
119
+ .IP "\(bu" 4
120
+ \fBforce_ruby_platform\fR (\fBBUNDLE_FORCE_RUBY_PLATFORM\fR): Ignore the current machine's platform and install only \fBruby\fR platform gems\. As a result, gems with native extensions will be compiled from source\.
121
+ .IP "\(bu" 4
122
+ \fBfrozen\fR (\fBBUNDLE_FROZEN\fR): Disallow any automatic changes to \fBGemfile\.lock\fR\. Bundler commands will be blocked unless the lockfile can be installed exactly as written\. Usually this will happen when changing the \fBGemfile\fR manually and forgetting to update the lockfile through \fBbundle lock\fR or \fBbundle install\fR\.
123
+ .IP "\(bu" 4
124
+ \fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR): Sets a GitHub username or organization to be used in the \fBREADME\fR and \fB\.gemspec\fR files when you create a new gem via \fBbundle gem\fR command\. It can be overridden by passing an explicit \fB\-\-github\-username\fR flag to \fBbundle gem\fR\.
125
+ .IP "\(bu" 4
126
+ \fBgem\.push_key\fR (\fBBUNDLE_GEM__PUSH_KEY\fR): Sets the \fB\-\-key\fR parameter for \fBgem push\fR when using the \fBrake release\fR command with a private gemstash server\.
127
+ .IP "\(bu" 4
128
+ \fBgemfile\fR (\fBBUNDLE_GEMFILE\fR): The name of the file that bundler should use as the \fBGemfile\fR\. This location of this file also sets the root of the project, which is used to resolve relative paths in the \fBGemfile\fR, among other things\. By default, bundler will search up from the current working directory until it finds a \fBGemfile\fR\.
129
+ .IP "\(bu" 4
130
+ \fBglobal_gem_cache\fR (\fBBUNDLE_GLOBAL_GEM_CACHE\fR): Whether Bundler should cache all gems and compiled extensions globally, rather than locally to the configured installation path\.
131
+ .IP "\(bu" 4
132
+ \fBignore_funding_requests\fR (\fBBUNDLE_IGNORE_FUNDING_REQUESTS\fR): When set, no funding requests will be printed\.
133
+ .IP "\(bu" 4
134
+ \fBignore_messages\fR (\fBBUNDLE_IGNORE_MESSAGES\fR): When set, no post install messages will be printed\. To silence a single gem, use dot notation like \fBignore_messages\.httparty true\fR\.
135
+ .IP "\(bu" 4
136
+ \fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR): Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.
137
+ .IP "\(bu" 4
138
+ \fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can download and install in parallel\. Defaults to the number of available processors\.
139
+ .IP "\(bu" 4
140
+ \fBlockfile\fR (\fBBUNDLE_LOCKFILE\fR): The path to the lockfile that bundler should use\. By default, Bundler adds \fB\.lock\fR to the end of the \fBgemfile\fR entry\. Can be set to \fBfalse\fR in the Gemfile to disable lockfile creation entirely (see gemfile(5))\.
141
+ .IP "\(bu" 4
142
+ \fBlockfile_checksums\fR (\fBBUNDLE_LOCKFILE_CHECKSUMS\fR): Whether Bundler should include a checksums section in new lockfiles, to protect from compromised gem sources\. Defaults to true\. Bundler's own checksum is only included when its \fB\.gem\fR file is cached, which may not be the case when Bundler is installed as a default gem\.
143
+ .IP "\(bu" 4
144
+ \fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR): Whether \fBbundle package\fR should skip installing gems\.
145
+ .IP "\(bu" 4
146
+ \fBno_prune\fR (\fBBUNDLE_NO_PRUNE\fR): Whether Bundler should leave outdated gems unpruned when caching\.
147
+ .IP "\(bu" 4
148
+ \fBonly\fR (\fBBUNDLE_ONLY\fR): A space\-separated list of groups to install only gems of the specified groups\. Please check carefully if you want to install also gems without a group, because they get put inside \fBdefault\fR group\. For example \fBonly test:default\fR will install all gems specified in test group and without one\.
149
+ .IP "\(bu" 4
150
+ \fBpath\fR (\fBBUNDLE_PATH\fR): The location on disk where all gems in your bundle will be located regardless of \fB$GEM_HOME\fR or \fB$GEM_PATH\fR values\. Bundle gems not found in this location will be installed by \fBbundle install\fR\. When not set, Bundler install by default to a \fB\.bundle\fR directory relative to repository root in Bundler 5, and to the default system path (\fBGem\.dir\fR) before Bundler 5\. That means that before Bundler 5, Bundler shares this location with Rubygems, and \fBgem install \|\.\|\.\|\.\fR will have gems installed in the same location and therefore, gems installed without \fBpath\fR set will show up by calling \fBgem list\fR\. This will not be the case in Bundler 5\.
151
+ .IP "\(bu" 4
152
+ \fBpath\.system\fR (\fBBUNDLE_PATH__SYSTEM\fR): Whether Bundler will install gems into the default system path (\fBGem\.dir\fR)\.
153
+ .IP "\(bu" 4
154
+ \fBplugins\fR (\fBBUNDLE_PLUGINS\fR): Enable Bundler's experimental plugin system\.
155
+ .IP "\(bu" 4
156
+ \fBprefer_patch\fR (\fBBUNDLE_PREFER_PATCH\fR): Prefer updating only to next patch version during updates\. Makes \fBbundle update\fR calls equivalent to \fBbundler update \-\-patch\fR\.
157
+ .IP "\(bu" 4
158
+ \fBredirect\fR (\fBBUNDLE_REDIRECT\fR): The number of redirects allowed for network requests\. Defaults to \fB5\fR\.
159
+ .IP "\(bu" 4
160
+ \fBretry\fR (\fBBUNDLE_RETRY\fR): The number of times to retry failed network requests\. Defaults to \fB3\fR\.
161
+ .IP "\(bu" 4
162
+ \fBshebang\fR (\fBBUNDLE_SHEBANG\fR): The program name that should be invoked for generated binstubs\. Defaults to the ruby install name used to generate the binstub\.
163
+ .IP "\(bu" 4
164
+ \fBsilence_deprecations\fR (\fBBUNDLE_SILENCE_DEPRECATIONS\fR): Whether Bundler should silence deprecation warnings for behavior that will be changed in the next major version\.
165
+ .IP "\(bu" 4
166
+ \fBsilence_root_warning\fR (\fBBUNDLE_SILENCE_ROOT_WARNING\fR): Silence the warning Bundler prints when installing gems as root\.
167
+ .IP "\(bu" 4
168
+ \fBsimulate_version\fR (\fBBUNDLE_SIMULATE_VERSION\fR): The virtual version Bundler should use for activating feature flags\. Can be used to simulate all the new functionality that will be enabled in a future major version\.
169
+ .IP "\(bu" 4
170
+ \fBssl_ca_cert\fR (\fBBUNDLE_SSL_CA_CERT\fR): Path to a designated CA certificate file or folder containing multiple certificates for trusted CAs in PEM format\.
171
+ .IP "\(bu" 4
172
+ \fBssl_client_cert\fR (\fBBUNDLE_SSL_CLIENT_CERT\fR): Path to a designated file containing a X\.509 client certificate and key in PEM format\.
173
+ .IP "\(bu" 4
174
+ \fBssl_verify_mode\fR (\fBBUNDLE_SSL_VERIFY_MODE\fR): The SSL verification mode Bundler uses when making HTTPS requests\. Defaults to verify peer\.
175
+ .IP "\(bu" 4
176
+ \fBsystem_bindir\fR (\fBBUNDLE_SYSTEM_BINDIR\fR): The location where RubyGems installs binstubs\. Defaults to \fBGem\.bindir\fR\.
177
+ .IP "\(bu" 4
178
+ \fBtimeout\fR (\fBBUNDLE_TIMEOUT\fR): The seconds allowed before timing out for network requests\. Defaults to \fB10\fR\.
179
+ .IP "\(bu" 4
180
+ \fBupdate_requires_all_flag\fR (\fBBUNDLE_UPDATE_REQUIRES_ALL_FLAG\fR): Require passing \fB\-\-all\fR to \fBbundle update\fR when everything should be updated, and disallow passing no options to \fBbundle update\fR\.
181
+ .IP "\(bu" 4
182
+ \fBuser_agent\fR (\fBBUNDLE_USER_AGENT\fR): The custom user agent fragment Bundler includes in API requests\.
183
+ .IP "\(bu" 4
184
+ \fBverbose\fR (\fBBUNDLE_VERBOSE\fR): Whether Bundler should print verbose output\. Defaults to \fBfalse\fR, unless the \fB\-\-verbose\fR CLI flag is used\.
185
+ .IP "\(bu" 4
186
+ \fBversion\fR (\fBBUNDLE_VERSION\fR): The version of Bundler to use when running under Bundler environment\. Defaults to \fBlockfile\fR\. You can also specify \fBsystem\fR or \fBx\.y\.z\fR\. \fBlockfile\fR will use the Bundler version specified in the \fBGemfile\.lock\fR, \fBsystem\fR will use the system version of Bundler, and \fBx\.y\.z\fR will use the specified version of Bundler\.
187
+ .IP "\(bu" 4
188
+ \fBwith\fR (\fBBUNDLE_WITH\fR): A space\-separated or \fB:\fR\-separated list of groups whose gems bundler should install\.
189
+ .IP "\(bu" 4
190
+ \fBwithout\fR (\fBBUNDLE_WITHOUT\fR): A space\-separated or \fB:\fR\-separated list of groups whose gems bundler should not install\.
191
+ .IP "" 0
228
192
  .SH "BUILD OPTIONS"
229
193
  You can use \fBbundle config\fR to give Bundler the flags to pass to the gem installer every time bundler tries to install a particular gem\.
230
194
  .P