diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh
index 6ff97b772af38ece10b96aea4fff2e96af0d4bc8..98fd34c1b44e7d015740c28380d0dd9a06a58d05 100644
--- a/Library/Homebrew/utils/ruby.sh
+++ b/Library/Homebrew/utils/ruby.sh
@@ -1,4 +1,4 @@
-origin-setup-ruby-path() {
+original-setup-ruby-path() {
   if [[ -z "$HOMEBREW_DEVELOPER" ]]
   then
     unset HOMEBREW_RUBY_PATH
@@ -22,9 +22,9 @@ origin-setup-ruby-path() {
 }
 
 setup-ruby-path() {
-  if [[ -z "$HOMEBREW_USE_VENDOR_RUBY" ]]
+  if [[ -z "$HOMEBREW_USE_VENDOR_RUBY" && -z "$HOMEBREW_FORCE_VENDOR_RUBY" ]]
   then
-    origin-setup-ruby-path
+    original-setup-ruby-path
     return
   fi
 
@@ -70,7 +70,7 @@ setup-ruby-path() {
         ruby_version_major="${ruby_version_major%%.*}"
       fi
 
-      if [[ "$ruby_version_major" != "2" ]]
+      if [[ "$ruby_version_major" != "2" || -n "$HOMEBREW_FORCE_VENDOR_RUBY" ]]
       then
         brew vendor-install ruby --quiet
         if [[ ! -x "$vendor_ruby_path" ]]
diff --git a/Library/brew.sh b/Library/brew.sh
index 3e137323c205dcf3a8e511d5a66fafd2daf412bb..03eaa43903d51650ceda58418a2d913d9e05d1e5 100644
--- a/Library/brew.sh
+++ b/Library/brew.sh
@@ -209,11 +209,6 @@ EOS
   esac
 fi
 
-# Hide shellcheck complaint:
-# shellcheck source=/dev/null
-source "$HOMEBREW_LIBRARY/Homebrew/utils/ruby.sh"
-setup-ruby-path
-
 # Hide shellcheck complaint:
 # shellcheck source=/dev/null
 source "$HOMEBREW_LIBRARY/Homebrew/utils/analytics.sh"
@@ -243,6 +238,11 @@ then
   source "$HOMEBREW_BASH_COMMAND"
   { update-preinstall; "homebrew-$HOMEBREW_COMMAND" "$@"; exit $?; }
 else
+  # Hide shellcheck complaint:
+  # shellcheck source=/dev/null
+  source "$HOMEBREW_LIBRARY/Homebrew/utils/ruby.sh"
+  setup-ruby-path
+
   # Unshift command back into argument list (unless argument list was empty).
   [[ "$HOMEBREW_ARG_COUNT" -gt 0 ]] && set -- "$HOMEBREW_COMMAND" "$@"
   { update-preinstall; exec "$HOMEBREW_RUBY_PATH" -W0 "$HOMEBREW_LIBRARY/brew.rb" "$@"; }