diff options
| author | Jack Nagel | 2012-02-09 17:32:41 -0600 |
|---|---|---|
| committer | Mike McQuaid | 2012-02-10 08:57:11 +0000 |
| commit | 511598fa3731158a933aee6ee9a6014f339dc283 (patch) | |
| tree | 26586064c652f3a6ec2d4ea644317ff10bed178d | |
| parent | 6cfe4b320870b6c12b6c88e4eac483f4e8d22315 (diff) | |
| download | brew-511598fa3731158a933aee6ee9a6014f339dc283.tar.bz2 | |
install: unlink old kegs
If a formula makes it all the way to the actual install step, it is safe
to unlink the keg before linking; this will prune dead symlinks in the
case where a keg was removed with `rm -rf <keg>` but not unlinked with
`brew unlink`.
Fixes Homebrew/homebrew#10077.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
| -rw-r--r-- | Library/Homebrew/cmd/install.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 5aa198f31..4260eaac9 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -103,6 +103,10 @@ module Homebrew extend self begin fi = FormulaInstaller.new(f) fi.install + # Due to the nature of Keg#unlink, this will remove symlinks from an + # older keg, which may still be present if an uninstallation was done + # via `rm -rf <keg>`; this is desired. + Keg.new("#{f.rack}/#{f.version}").unlink fi.caveats fi.finish rescue FormulaAlreadyInstalledError => e |
