OS X'i yükselttikten sonra Homebrew kurulumumu nasıl düzeltmeliyim?


25

bağlam

İşverenim geliştirme çalışmaları için bana bir MacBook Pro verdi; Ancak, araştırma grubumda yaptığım geliştirme çalışmalarının çoğu Linux platformları içindir ve bir dizi politika nedeniyle, bu dizüstü bilgisayara sanallaştırma yazılımı yükleyemiyorum. Homebrew, özellikle çok kırılabilir göründüğü için bu araçları kurmanın iyi bir yoluna benziyor (Ruby kullandığı için; MacPorts, Tcl kullandığı için kırılmaz görünmüyor). Ancak, Homebrew sistem kitaplıklarına güveniyor ve güvenlik nedeniyle işverenim (ve duyduğum kadarıyla) sistemimi istediğim zaman yükseltebilir. OS X yükseltmelerinin Homebrew’i kıracağını duydum. (Örneğin, bkz . Https://stackoverflow.com/questions/7779300/how-should-i-upgrade-xcode-after-upgrading-to-os-x-lion ).

Soru

OS X yükseltmesinden sonra Homebrew kurulumumu nasıl düzeltebilirim? Otomatik bir şekilde yapabildiğim sürece, onu silip sıfırdan başlayacağım. (Örneğin, bir kabuk betiğini çalıştırırken otomatik olarak kurulacak bir konfigürasyonu yazmak için Puppet plus ve bir Homebrew sağlayıcısı kullanmak gibi.) Her yerde Googling' oldum ve bu sorunun cevabını bulamıyorum.

Yanıtlar:


8
brew update

Homebrew kurulumunu günceller. Herhangi bir hata varsa, bildirilmelidir brew doctor. Başkalarını onarmayı deneyin, kaldırma komut dosyasını aşağıdaki gibi kullanabilirsiniz:

#!/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

Ve homebrew'i tekrar kurun. Bütün bunların kukla kullanılarak yapılandırılabildiğinden eminim.


7

Sadece paketleri kaldırmak yerine tüm paketleri yeniden kurmanızın gerekip gerekmediğini merak ediyor olabilirsiniz . Eğer durum buysa, bu sorunun dediği gibi , genel olarak sorun olmadığını anlıyorum .

Özellikle OS X Mavericks ve Xcode 5'e geçerken sorun yaşadım, kurduğum tüm paketleri yeniden bağlamak zorunda kaldım - işte betiğim:

#!/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

Çıktıya dikkat edin, bazı formüller adım --forceiçin gerekli olacaktır link.

Bu hala işe yaramazsa, bu komut serisini Mike McQuaid'den deneyin :

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

Şimdi rebuildHomeBrew'da bir komut var, ancak şu anda bağımlılıkları çözmüyor.


1
Yeni Mac'ime Mavericks'i temiz bir şekilde yükledim ve bundan sonra diğer Mac'imden Time Machine yedeğini geri yükledim. Homebrew ve formülleri de dahil olmak üzere bilgisayarı yüklü olan her şeyle birlikte bıraktı, ancak hepsi birbiriyle bağlantılı değildi. Komut dosyasını aynı anda tüm formülleri yeniden bağlamak için kullandım ve düzelttim! Bir cazibe gibi çalışır, teşekkürler.
Alejandro García Iglesias

1
İlgili bir problemde tüm muslukları açmak / açmak zorunda kaldım, aksi halde demleme doğru musluğa dokunulduğunu iddia etse bile bazı formüller bulamazdı. for tap in $(brew tap); do brew untap "$tap"; brew tap "$tap"; done
Joel Purra
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.