C'è un modo rapido per ricollegare i miei barili homebrew?

58

Ho appena aggiornato il mio MacBook Air a Mavericks. Sembra che il processo abbia rimosso quasi tutti i link simbolici che homebrew ha inserito in /usr/local/bin . Poiché noto che mancano le cose, le ricollego tramite brew unlink <keg> && brew link <keg> (anche se i collegamenti simbolici sono spariti, homebrew continua a pensare che siano lì quindi devo prima unlink ). Questo sembra in qualche modo inefficiente.

Potrei semplicemente scorrere tutto in /usr/local/Cellar ma non ogni keg è automaticamente collegato e non voglio collegarli. Quindi la mia prossima ipotesi è di elencare ogni keg collegato e ricollegarli (usando il precedente).

C'è qualche comando magico che troverà tutti i fusti che homebrew pensa sono collegati in modo da poter ricollegarli?

    
posta Loop Space 11.03.2014 - 09:03
fonte

3 risposte

37

/usr/local/Library/LinkedKegs sembra contenere una lista di, bene, keg collegati, quindi questo dovrebbe fare il trucco:

ls -1 /usr/local/Library/LinkedKegs | while read line; do
    echo $line
    brew unlink $line
    brew link --force $line
done

Ti consigliamo di assicurarti di disporre nuovamente delle autorizzazioni di scrittura su /usr/local/lib prima di provare questo.

    
risposta data 23.03.2014 - 21:39
fonte
55

Questo comando bash (tratto da there ) si scollegherà tutte le formule installate e quindi collegarle di nuovo:

brew list -1 | while read line; do brew unlink $line; brew link $line; done

Immagino che tutte le formule debbano essere collegate, altrimenti, qualunque strumento dipenda da loro, non sarà in grado di trovarle ..

    
risposta data 11.03.2014 - 20:51
fonte
8

Oltre alle altre risposte a questa domanda, potresti dover ricollegare la formula con più versioni installate ( brew link non lo farà per te).

Innanzitutto, ricollega tutte le formule che puoi:

brew list -1 | while read line; do brew unlink $line; brew link --force $line; done

Quindi esegui brew doctor , che dovrebbe presentare un reclamo e darti due elenchi:

  • Formule non collegate con più versioni
  • Formule Keg-only che sono state collegate erroneamente dal processo di ricollegamento originale.

Per ogni formula con più versioni eseguire quanto segue, sostituendo "python" con il nome della formula:

brew info python  

Questo mostrerà, tra le altre informazioni, tutte le versioni installate. Scegli quale versione vuoi collegare (per me è la 2.7.6), e usa brew switch

brew switch python 2.7.6

Dovrai anche eseguire brew unlink nell'elenco (se presente) delle formule solo keg che sono state collegate.

    
risposta data 28.04.2014 - 11:03
fonte

Leggi altre domande sui tag