-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
Description
Describe the problem as clearly as you can
Bundler loads Pathname early on, notably in
| Pathname.pwd |
with
| autoload :Pathname, "pathname" |
This prevents using an installed pathname gem, and forces using the pathname stdlib always.
Did you try upgrading rubygems & bundler?
I'm using the latest Bundler, 2.7.2.
Post steps to reproduce the problem
$ cat Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
pathname (0.4.0)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
pathname
BUNDLED WITH
2.7.2
$ bundle install
As we can see stdlib pathname is unexpectedly used, even though the gem lib is earlier in $LOAD_PATH:
$ ruby -e 'require "bundler/setup"; require "pathname"; puts $".grep(/pathname/); puts; puts $:'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/x86_64-linux/pathname.so
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/pathname.rb
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib
/home/eregon/tmp/bundler-pathname/vendor/bundle/ruby/3.4.0/gems/pathname-0.4.0/lib
/home/eregon/tmp/bundler-pathname/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/pathname-0.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/site_ruby/3.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/site_ruby/3.4.0/x86_64-linux
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/site_ruby
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/vendor_ruby/3.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/vendor_ruby/3.4.0/x86_64-linux
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/vendor_ruby
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/x86_64-linux
And this is because Bundler itself loads Pathname early:
$ ruby -e 'Kernel.prepend Module.new { def require(path); puts path, caller, nil if path.include?("pathname"); super; end }; require "bundler/setup"; require "pathname"; puts $".grep(/pathname/); puts; puts $:'
pathname
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:60:in 'block in Bundler::SharedHelpers#pwd'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:59:in 'Monitor#synchronize'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:59:in 'Bundler::SharedHelpers#pwd'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:281:in 'Bundler::SharedHelpers#search_up'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:268:in 'Bundler::SharedHelpers#find_file'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:260:in 'Bundler::SharedHelpers#find_gemfile'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:49:in 'Bundler::SharedHelpers#in_bundle?'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/setup.rb:5:in '<top (required)>'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
-e:1:in 'require'
-e:1:in '<main>'
pathname.so
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/pathname.rb:13:in '<top (required)>'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
-e:1:in 'require'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:60:in 'block in Bundler::SharedHelpers#pwd'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:59:in 'Monitor#synchronize'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:59:in 'Bundler::SharedHelpers#pwd'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:281:in 'Bundler::SharedHelpers#search_up'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:268:in 'Bundler::SharedHelpers#find_file'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:260:in 'Bundler::SharedHelpers#find_gemfile'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/shared_helpers.rb:49:in 'Bundler::SharedHelpers#in_bundle?'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/setup.rb:5:in '<top (required)>'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
-e:1:in 'require'
-e:1:in '<main>'
pathname
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler.rb:5:in '<top (required)>'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/setup.rb:6:in 'Kernel#require_relative'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib/bundler/setup.rb:6:in '<top (required)>'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
<internal:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:136:in 'Kernel#require'
-e:1:in 'require'
-e:1:in '<main>'
pathname
-e:1:in '<main>'
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/x86_64-linux/pathname.so
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/pathname.rb
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0/gems/bundler-2.7.2/lib
/home/eregon/tmp/bundler-pathname/vendor/bundle/ruby/3.4.0/gems/pathname-0.4.0/lib
/home/eregon/tmp/bundler-pathname/vendor/bundle/ruby/3.4.0/extensions/x86_64-linux/3.4.0/pathname-0.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/site_ruby/3.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/site_ruby/3.4.0/x86_64-linux
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/site_ruby
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/vendor_ruby/3.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/vendor_ruby/3.4.0/x86_64-linux
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/vendor_ruby
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0
/home/eregon/.rubies/ruby-3.4.7/lib/ruby/3.4.0/x86_64-linux
If not included with the output of your command, run bundle env and paste the output below
Environment
Bundler 2.7.2
Platforms ruby, x86_64-linux
Ruby 3.4.7p58 (2025-10-08 revision 7a5688e2a27668e48f8d6ff4af5b2208b98a2f5e) [x86_64-linux]
Full Path /home/eregon/.rubies/ruby-3.4.7/bin/ruby
Config Dir /home/eregon/.rubies/ruby-3.4.7/etc
RubyGems 3.6.9
Gem Home /home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0
Gem Path /home/eregon/.gem/ruby/3.4.0:/home/eregon/.rubies/ruby-3.4.7/lib/ruby/gems/3.4.0
User Home /home/eregon
User Path /home/eregon/.gem/ruby/3.4.0
Bin Dir /home/eregon/.rubies/ruby-3.4.7/bin
Tools
Git 2.51.0
RVM not installed
rbenv not installed
chruby 0.3.9
Bundler Build Metadata
Timestamp 2025-09-09
Git SHA b463ced1459
Bundler settings
path
Set for the current user (/home/eregon/.bundle/config): "vendor/bundle"
Gemfile
Gemfile
source "https://rubygems.org"
gem "pathname"Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
pathname (0.4.0)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
pathname
BUNDLED WITH
2.7.2