mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
utils: inject Ruby path when running Gems
Particularly the `bundler` Gem requires the right Ruby binary to be in the PATH to work correctly if the Ruby binary used to run Homebrew is overridden via `HOMEBREW_RUBY_PATH` and thus intentionally not prefixed to the PATH (as that would affect formulae with a Ruby dependency). The workaround here is to prefix this path only when a Gem is activated via `Homebrew.install_gem_setup_path!` (currently used in `brew man`, `brew style`, and `brew tests`).
This commit is contained in:
parent
35c58faa19
commit
8dc1e05ff8
@ -231,7 +231,12 @@ module Homebrew
|
||||
|
||||
def self.install_gem_setup_path!(gem, version = nil, executable = gem)
|
||||
require "rubygems"
|
||||
ENV["PATH"] = "#{Gem.user_dir}/bin:#{ENV["PATH"]}"
|
||||
|
||||
# Add Gem binary directory and (if missing) Ruby binary directory to PATH.
|
||||
path = ENV["PATH"].split(File::PATH_SEPARATOR)
|
||||
path.unshift(RUBY_BIN) if which("ruby") != RUBY_PATH
|
||||
path.unshift("#{Gem.user_dir}/bin")
|
||||
ENV["PATH"] = path.join(File::PATH_SEPARATOR)
|
||||
|
||||
if Gem::Specification.find_all_by_name(gem, version).empty?
|
||||
ohai "Installing or updating '#{gem}' gem"
|
||||
|
Loading…
x
Reference in New Issue
Block a user