Make Bundler install gems into home

← Back

In the past, Bundler used to respect the way Gentoo Linux sets up Ruby (abridged output):

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 3.1.6
  - RUBY VERSION: 2.7.5 (2021-11-24 patchlevel 203) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib64/ruby/gems/2.7.0
  - USER INSTALLATION DIRECTORY: /home/xhire/.gem/ruby/2.7.0
  - GEM CONFIGURATION:
     - "install" => "--install-dir /home/xhire/.gem/ruby/2.7.0"
     - "uninstall" => "--install-dir /home/xhire/.gem/ruby/2.7.0"
     - "update" => "--install-dir /home/xhire/.gem/ruby/2.7.0"

As you can see, it makes gems installed to a user’s directory, not system-wide. However, bundler doesn’t respect that:

$ bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 13.0.6
Following files may not be writable, so sudo is needed:
  /usr/bin
  /usr/lib64/ruby/gems/2.7.0
  /usr/lib64/ruby/gems/2.7.0/build_info
  /usr/lib64/ruby/gems/2.7.0/cache
  /usr/lib64/ruby/gems/2.7.0/doc
  /usr/lib64/ruby/gems/2.7.0/extensions
  /usr/lib64/ruby/gems/2.7.0/gems
  /usr/lib64/ruby/gems/2.7.0/specifications
Using concurrent-ruby 1.1.10
Using i18n 1.10.0
Using minitest 5.15.0
Using activesupport 7.0.2.3
Using builder 3.2.4
Using erubi 1.10.0
Using mini_portile2 2.8.0
Using racc 1.6.0
Fetching nokogiri 1.13.4 (x86_64-linux)


Your user account isn't allowed to install to the system RubyGems.
  You can cancel this installation and run:

      bundle install --path vendor/bundle

  to install the gems into ./vendor/bundle/, or you can enter your password
  and install the bundled gems to RubyGems using sudo.

  Password:

Man page bundle-install(1) says:

By default, Bundler installs gems to the same location as gem install.

This is not true.

To fix this misbehaviour, add a line similar to the following one (change your username and the version) to a shell startup script like ~/.bash_profile or similar (depending on the shell you use):

export GEM_HOME=/home/xhire/.gem/ruby/2.7.0

Tagged with: Ruby

Written: 2022-04-21