Come devo riparare la mia installazione di Homebrew dopo aver aggiornato OS X?

23

Contesto

Il mio datore di lavoro mi ha dato un MacBook Pro per il lavoro di sviluppo; tuttavia, la maggior parte del lavoro di sviluppo che faccio nel mio gruppo di ricerca riguarda piattaforme Linux e, per una serie di motivi di policy, non riesco a installare il software di virtualizzazione su questo laptop. Homebrew sembra un buon modo per installare questi strumenti, specialmente perché sembra molto hackerabile (dato che usa Ruby, MacPorts non sembra hackerabile, perché usa Tcl). Tuttavia, Homebrew si basa sulle librerie di sistema e, per ragioni di sicurezza, il mio datore di lavoro può (e da quello che sento, frequentemente) aggiornare il mio sistema in qualsiasi momento. Ho sentito che gli aggiornamenti di OS X si romperanno Homebrew. (Vedi, ad esempio, link ).

Domanda

Come faccio a correggere la mia installazione di Homebrew dopo un aggiornamento di OS X? Sto bene cancellandolo e ricominciando da zero, finché posso farlo in modo automatico. (Ad esempio, usando Puppet e un provider di Homebrew per scrivere una configurazione che si baserà automaticamente sull'esecuzione di uno script di shell.) Ho cercato su Google ovunque e non riesco a trovare risposte a questa domanda.

    
posta Geoff Oxberry 08.02.2013 - 19:24
fonte

2 risposte

8
brew update

Aggiorna l'installazione Homebrew. Se ci sono errori, dovrebbero essere segnalati da brew doctor . Prova a risolverli, potresti usare lo script di disinstallazione come segue:

#!/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 installa di nuovo homebrew. Sono abbastanza sicuro che tutto ciò sia configurabile usando puppet.

    
risposta data 08.02.2013 - 19:29
fonte
7

Penso che potresti esserti chiesto se è necessario ricostruire tutti i pacchetti piuttosto che solo disinstallarli. Se questo è il caso, capisco che in genere è non è un problema , come dice questa risposta .

Ho avuto problemi, soprattutto quando ho cambiato OS X Mavericks e Xcode 5 ho dovuto ricollegare tutti i pacchetti che avevo installato - ecco il mio 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

Nota l'output, alcune formule richiedono --force per il passo link .

Se il problema persiste, prova questa serie di comandi da Mike McQuaid :

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

Ora c'è un comando rebuild in HomeBrew, ma al momento non risolve le dipendenze.

    
risposta data 05.03.2014 - 18:45
fonte

Leggi altre domande sui tag