¿Cómo debo arreglar mi instalación de Homebrew después de actualizar OS X?

23

Contexto

Mi empleador me dio un MacBook Pro para el trabajo de desarrollo; sin embargo, la mayor parte del trabajo de desarrollo que hago en mi grupo de investigación es para plataformas Linux, y por una serie de razones políticas, no puedo instalar software de virtualización en esta computadora portátil. Homebrew parece una buena manera de instalar estas herramientas, especialmente porque se ve muy hackeable (ya que usa Ruby; MacPorts no parece hackeable porque usa Tcl). Sin embargo, Homebrew confía en las bibliotecas del sistema y, por razones de seguridad, mi empleador puede (y por lo que oigo, actualizar) mi sistema en cualquier momento. He oído que las actualizaciones de OS X romperán Homebrew. (Ver, por ejemplo, enlace ).

Pregunta

¿Cómo puedo solucionar mi instalación de Homebrew después de una actualización de OS X? Estoy de acuerdo con borrarlo y empezar de cero nuevamente, siempre que pueda hacerlo de forma automática. (Por ejemplo, usar Puppet más un proveedor de Homebrew para crear una configuración que se construirá automáticamente al ejecutar un script de shell). He estado buscando en Google en todas partes y parece que no puedo encontrar respuestas a esta pregunta.

    
pregunta Geoff Oxberry 08.02.2013 - 19:24

2 respuestas

8
brew update

Actualiza la instalación de Homebrew. Si hay algún error, debe ser reportado por brew doctor . Intente solucionarlos de otra manera, podría usar el script de desinstalación de la siguiente manera:

#!/bin/sh
# Just copy and paste the lines below (all at once, it won't work line by line!)
# MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY!

function abort {
  echo "$1"
  exit 1
}

set -e

/usr/bin/which -s git || abort "brew install git first!"
test -d /usr/local/.git || abort "brew update first!"

cd 'brew --prefix'
git checkout master
git ls-files -z | pbcopy
rm -rf Cellar
bin/brew prune
pbpaste | xargs -0 rm
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
test -d Library/LinkedKegs && rm -r Library/LinkedKegs
rmdir -p bin Library share/man/man1 2> /dev/null
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
rm -rf ~/Library/Logs/Homebrew
rm -rf /Library/Caches/Homebrew

E instalar homebrew de nuevo. Estoy bastante seguro de que todo esto es configurable utilizando títere.

    
respondido por el Gaurav Agarwal 08.02.2013 - 19:29
7

Creo que podría haberse preguntado si necesita reconstruir todos los paquetes en lugar de solo desinstalarlos. Si ese es el caso, entiendo que generalmente es no es un problema , como dice esta respuesta .

He tenido problemas, especialmente al cambiar a OS X Mavericks y Xcode 5 tuve que volver a vincular todos los paquetes que tenía instalados. Aquí está mi script:

#!/bin/bash
FORMULAS=('brew list');
for FORMULA in "${FORMULAS[@]}"
do 
    echo "brew unlink $FORMULA" && echo "brew link $FORMULA";
    OUTPUT='brew unlink $FORMULA';
    echo $OUTPUT;
    OUTPUT='brew link $FORMULA';
    echo $OUTPUT;
done

Tenga en cuenta la salida, algunas fórmulas requerirán --force para el paso link .

Si eso todavía no funciona, intente esta serie de comandos de Mike McQuaid :

brew list > brew-list.txt
brew uninstall $(cat brew-list.txt)
brew install $(cat brew-list.txt)

Ahora hay un comando rebuild en HomeBrew, pero eso no resuelve las dependencias actualmente.

    
respondido por el sventechie 05.03.2014 - 18:45

Lea otras preguntas en las etiquetas