diff --git a/Library/Homebrew/cli/named_args.rb b/Library/Homebrew/cli/named_args.rb index ec3812d445..4f245e9744 100644 --- a/Library/Homebrew/cli/named_args.rb +++ b/Library/Homebrew/cli/named_args.rb @@ -164,7 +164,10 @@ module Homebrew end unless (prefix = f.latest_installed_prefix).directory? - raise MultipleVersionsInstalledError, "#{rack.basename} has multiple installed versions" + raise MultipleVersionsInstalledError, <<~EOS + #{rack.basename} has multiple installed versions + Run `brew uninstall --force #{rack.basename}` to remove all versions. + EOS end Keg.new(prefix) diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index ee65afb1b8..2cfe6c600b 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -134,7 +134,6 @@ module Homebrew ) rescue MultipleVersionsInstalledError => e ofail e - puts "Run `brew uninstall --force #{e.name}` to remove all versions." ensure # If we delete Cellar/newname, then Cellar/oldname symlink # can become broken and we have to remove it. diff --git a/Library/Homebrew/test/exceptions_spec.rb b/Library/Homebrew/test/exceptions_spec.rb index 536c63baa1..8bb4266ad7 100644 --- a/Library/Homebrew/test/exceptions_spec.rb +++ b/Library/Homebrew/test/exceptions_spec.rb @@ -3,9 +3,19 @@ require "exceptions" describe MultipleVersionsInstalledError do - subject { described_class.new("foo has multiple installed versions") } + subject { + described_class.new <<~EOS + foo has multiple installed versions + Run `brew uninstall --force foo` to remove all versions. + EOS + } - its(:to_s) { is_expected.to eq("foo has multiple installed versions") } + its(:to_s) { + is_expected.to eq <<~EOS + foo has multiple installed versions + Run `brew uninstall --force foo` to remove all versions. + EOS + } end describe NoSuchKegError do