É tão simples assim:
$ brew list | xargs brew reinstall
Você não precisa desinstalar nada, porque ao fazer isso você pode perder suas configurações e configurações.
Recentemente, tive um problema em que todos os meus binários vinculados foram removidos de /usr/local/bin/
. Felizmente, a maioria deles eram apenas links dinâmicos para binários instalados com Homebrew, então depois de reinstalar o Homebrew eu preciso recuperá-los. Existe uma maneira de forçar a reinstalação de todos os pacotes e binários instalados com o Homebrew? Talvez canalizar a saída de brew list
em brew reinstall
?
Eu tive uma necessidade disso depois de atualizar para o OSX High Sierra. A maioria dos pacotes de cerveja estava falhando na forma de dylibs ausentes. Acabou escrevendo um rápido & roteiro sujo que remove o & substitui um de cada vez, ignorando as dependências, para que você não force as purgas em massa. Você precisa consertar cada ponto de parada, mas continua de onde parou, então não é muito doloroso.
YMMV como sempre
#!/bin/bash -e
if [ "$1" == "-h" ] ; then
cat <<EOT
Remove & reinstall all brew owned packages
Fail on error to allow manual fixing
Accept package name as arg1 to spec pick up point.
$0 [<pickup point>]
eg:
$0
or
$0 ctags
where <ctags> is the package to start from
EOT
exit 1
fi
for l in $(brew list) ; do
if [ "$1" ] ; then
if [[ $l < $1 ]] ; then
echo "skipping $l"
continue
fi
fi
echo "Remove $l"
brew uninstall --ignore-dependencies $l
echo "Re-add $l"
brew install $l
done
Você pode remover todos os pacotes primeiro e depois instalar tudo novamente ....
$ brew tap beeftornado/rmtree && brew install brew-rmtree
$ brew rmtree <package>
Algo como
cd /tmp
brew list -1 >brew-list
# do whatever is necessary to remove packages
while read package; do
brew install $package
done <brew-list
deve fazer o truque (a menos que você tenha instalado a partir de toques, então pode precisar de mais algum trabalho).