67 votes

Existe-t-il un moyen rapide de relier mes fûts de homebrew ?

Je viens de mettre à jour mon Macbook Air avec Mavericks. Le processus semble avoir supprimé la quasi-totalité des liens symétriques que homebrew mettre /usr/local/bin . Lorsque je remarque que des choses manquent, je les relie via brew unlink <keg> && brew link <keg> (bien que les liens symboliques aient disparu, homebrew pense toujours qu'ils sont là, donc je dois unlink premier). Cela semble quelque peu inefficace.

Je pourrais juste passer en boucle tout ce qui est dans /usr/local/Cellar mais pas chaque keg est automatiquement lié et je ne veux pas les lier. Je pense donc qu'il faut lister tous les lié à keg et les relier à nouveau (en utilisant ce qui précède).

Est-ce qu'il y a une commande magique qui trouvera tous les barils qui homebrew pense sont liés afin que je puisse les relier à nouveau ?

72voto

nuc Points 4736

Cette commande bash (tirée de ) va dissocier toutes les formules installées et les relier à nouveau :

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

Je suppose que toutes les formules doivent être liées, sinon, l'outil qui en dépend ne pourra pas les trouver

42voto

mike__t Points 524

/usr/local/Library/LinkedKegs semble contenir une liste de, eh bien, de fûts liés, donc cela devrait faire l'affaire :

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

Je vous recommande de vous assurer que vous avez les droits d'écriture sur /usr/local/lib avant d'essayer ceci.

9voto

Scott Ritchie Points 191

En plus des autres réponses à cette question, il se peut que vous deviez également réassocier les formules dont plusieurs versions sont installées ( brew link ne le fera pas pour vous).

D'abord, reliez toutes les formules que vous pouvez :

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

Ensuite, exécutez brew doctor qui devrait se plaindre et vous donner deux listes :

  • Formules non liées avec plusieurs versions
  • Formules pour fûts uniquement qui ont été incorrectement liées par le processus de réassemblage original.

Pour chaque formule comportant plusieurs versions, exécutez la procédure suivante, en remplaçant "Python" par le nom de la formule :

brew info python  

Cela vous montrera, entre autres informations, toutes les versions installées. Choisissez la version que vous voulez lier (pour moi c'est 2.7.6), et utilisez brew switch

brew switch python 2.7.6

Vous voudrez également exécuter brew unlink sur la liste (s'il y en a une) des formules de type keg-only qui ont été liées.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X