Voir aussi superuser.com/questions/203707/… qui a des réponses qui décrivent une façon "désormais canonique" de supprimer les homebrews
rogerdpack
@rogerdpack Les commentaires peuvent être supprimés à tout moment, pouvez-vous s'il vous plaît poster une réponse décrivant la nouvelle méthode?
nohillside
Réponses:
17
Cela rm -rfne vous demandera pas si vous êtes sûr lorsque vous supprimez, alors assurez-vous que la cdcommande fonctionne pour vous sortir de / tmp (le cd /tmpvous emmène dans un endroit sûr au cas où vous copiez / collez tout en une seule fois afin de ne pas supprimer les fichiers de votre répertoire actuel)
Je vérifierais que le cd `brew --prefix`fichier va dans un dossier dans lequel vous n'avez pas de fichiers git normaux, car une configuration ancienne / défectueuse pourrait échouer et la suppression de git ls-filespourrait supprimer autre chose que les restes de votre brassage.
bmike
J'ai lu la documentation, je pensais juste que cela pourrait être une question utile à poser pour référence future. J'ai cependant des problèmes avec les instructions, que j'ai publiées comme une question distincte: apple.stackexchange.com/questions/82863/…
Bien que l'installation de HomeBrew soit bien en vue sur sa première page, les détails ne le sont pas.
https://brew.sh/
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Pendant longtemps, il a été très difficile de trouver une désinstallation fiable. Maintenant, à quelques clics dans les documents, il existe maintenant une méthode officielle:
https://docs.brew.sh/FAQ
Pour désinstaller Homebrew, collez la commande ci-dessous dans une invite de terminal.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
#!/usr/bin/env ruby
#
# Locates and removes Homebrew installation
# http://brew.sh/
#
# Author: Stephen Benner
# https://github.com/SteveBenner
#
require 'optparse'
require 'fileutils'
require 'open3'
$stdout.sync = true
# Default options
options = {
:quiet => false,
:verbose => true,
:dry_run => false,
:force => false,
:find_path => false
}
optparser = OptionParser.new do |opts|
opts.on('-q', '--quiet', 'Quiet mode - suppress output.') do |setting|
options[:quiet] = setting
options[:verbose] = false
end
opts.on('-v', '--verbose', 'Verbose mode - print all operations.') { |setting| options[:verbose] = setting }
opts.on('-d', '--dry', 'Dry run - print results, but perform no actual operations.') do |setting|
options[:dry_run] = setting
end
opts.on('-f', '--force', 'Forces removal of files, bypassing prompt. USE WITH CAUTION.') do |setting|
options[:force] = setting
end
opts.on('-p', '--find-path', 'Output homebrew location if found, then exit.') do |setting|
options[:find_path] = setting
options[:quiet] = true
end
opts.on('-h', '--help', '--usage', 'Display usage info and quit.') { puts opts; exit }
end
optparser.parse!
$quiet = options[:quiet] # provides access to option value within methods
# Files installed into the Homebrew repository
BREW_LOCAL_FILES = %w[
.git
Cellar
Library/brew.rb
Library/Homebrew
Library/Aliases
Library/Formula
Library/Contributions
Library/LinkedKegs
]
# Files that Homebrew installs into other system locations
BREW_SYSTEM_FILES = %W[
#{ENV['HOME']}/Library/Caches/Homebrew
#{ENV['HOME']}/Library/Logs/Homebrew
/Library/Caches/Homebrew
]
$files = []
# This function runs given command in a sub-shell, expecting the output to be the
# path of a Homebrew installation. If given a block, it passes the shell output to
# the block for processing, using the return value of the block as the new path.
# Known Homebrew files are then scanned for and added to the file list. Then the
# directory is tested for a Homebrew installation, and the git index is added if
# a valid repo is found. The function won't run once a Homebrew installation is
# found, but it will accumulate untracked Homebrew files each invocation.
#
# @param [String] cmd a shell command to run
# @param [String] error_msg message to print if command fails
#
def locate_brew_path(cmd, error_msg = 'check homebrew installation and PATH.')
return if $brew_location # stop testing if we find a valid Homebrew installation
puts "Searching for homewbrew installation using '#{cmd}'..." unless $quiet
# Run given shell command along with any code passed-in via block
path = `#{cmd}`.chomp
path = yield(path) if block_given? # pass command output to your own fancy code block
begin
Dir.chdir(path) do
# Search for known Homebrew files and folders, regardless of git presence
$files += BREW_LOCAL_FILES.select { |file| File.exist? file }.map {|file| File.expand_path file }
$files += Dir.glob('**/{man,bin}/**/brew*')
# Test for Homebrew git repository (use popen3 so we can suppress git error output)
repo_name = Open3.popen3('git remote -v') do |stdin, stdout, stderr|
stderr.close
stdout.read
end
if repo_name =~ /homebrew.git|Homebrew/
$brew_location = path
else
return
end
end
rescue StandardError # on normal errors, continue program
return
end
end
# Attempt to locate homebrew installation using a command and optional code block
# for processing the command results. Locating a valid path halts searching.
locate_brew_path 'brew --prefix'
locate_brew_path('which brew') { |output| File.expand_path('../..', output) }
locate_brew_path 'brew --prefix' do |output|
output = output.split($/).first
File.expand_path('../..', output)
end
# Found Homebrew installation
if $brew_location
puts "Homebrew found at: #{$brew_location}" unless options[:quiet]
if options[:find_path]
puts $brew_location
exit
end
# Collect files indexed by git
begin
Dir.chdir($brew_location) do
# Update file list (use popen3 so we can suppress git error output)
Open3.popen3('git checkout master') { |stdin, stdout, stderr| stderr.close }
$files += `git ls-files`.split.map {|file| File.expand_path file }
end
rescue StandardError => e
puts e # Report any errors, but continue the script and collect any last files
end
end
# Collect any files Homebrew may have installed throughout our system
$files += BREW_SYSTEM_FILES.select { |file| File.exist? file }
abort 'Failed to locate any homebrew files!' if $files.empty?
# DESTROY! DESTROY! DESTROY!
unless options[:force]
print "Delete #{$files.count} files? "
abort unless gets.rstrip =~ /y|yes/i
end
rm =
if options[:dry_run]
lambda { |entry| puts "deleting #{entry}" unless options[:quiet] }
else
lambda { |entry| FileUtils.rm_rf(entry, :verbose => options[:verbose]) }
end
puts 'Deleting files...' unless options[:quiet]
$files.each(&rm)
Bienvenue sur Ask Different! Bien que le lien que vous avez fourni puisse répondre à la question, il est préférable d'inclure la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change. J'ai modifié votre question pour inclure ce que je pense être la solution à laquelle vous faisiez référence, mais si ce n'était pas le cas, veuillez citer la section pertinente. Pouvez-vous également expliquer pourquoi votre solution est meilleure?
grg
1
C'est plus que quelques lignes donc j'ai pensé que l'inclusion du code serait compliquée, mais je suis heureux de le faire à l'avenir. C'est mieux car il y a des fichiers et des répertoires qui ne sont pas détectés par la réponse publiée que mon script supprimera. Il fournit un utilitaire à l'utilisateur via les options CLI, recherche de manière plus exhaustive les emplacements de brassage et est codé de manière à le rendre facile à modifier si vous souhaitez améliorer le script.
Réponses:
Cela
rm -rf
ne vous demandera pas si vous êtes sûr lorsque vous supprimez, alors assurez-vous que lacd
commande fonctionne pour vous sortir de / tmp (lecd /tmp
vous emmène dans un endroit sûr au cas où vous copiez / collez tout en une seule fois afin de ne pas supprimer les fichiers de votre répertoire actuel)Essayez ceci dans votre terminal:
Plus d'informations sur ce sujet peuvent être trouvées dans la FAQ Homebrew .
la source
cd `brew --prefix`
fichier va dans un dossier dans lequel vous n'avez pas de fichiers git normaux, car une configuration ancienne / défectueuse pourrait échouer et la suppression degit ls-files
pourrait supprimer autre chose que les restes de votre brassage.Bien que l'installation de HomeBrew soit bien en vue sur sa première page, les détails ne le sont pas. https://brew.sh/
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Pendant longtemps, il a été très difficile de trouver une désinstallation fiable. Maintenant, à quelques clics dans les documents, il existe maintenant une méthode officielle: https://docs.brew.sh/FAQ Pour désinstaller Homebrew, collez la commande ci-dessous dans une invite de terminal.ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
la source
Voici une bien meilleure solution pour supprimer Homebrew: https://gist.github.com/SteveBenner/11254428
la source