Jak zaktualizować formułę za pomocą Homebrew?

164

Jak zaktualizować formułę?

Pobiegłem brew update. Następnie uruchomiono brew outdatedwyjścia:

mongodb (1.4.3-x86_64 < 1.6.5-x86_64)

Dlatego mongodbjest przestarzały.

Jak mogę to ulepszyć? Czy po prostu odinstalować, a następnie zainstalować?

ma11hew28
źródło

Odpowiedzi:

242

Myślę, że właściwy sposób to zrobić

brew upgrade mongodb

Uaktualni formułę mongodb. Jeśli chcesz zaktualizować wszystkie przestarzałe formuły, po prostu

napar upgrade

yc
źródło
To rzeczywiście jest teraz właściwy sposób . Stare sposoby będą nadal działać, jeśli użyjesz dołączenia --force.
mxcl
Kiedy uruchamiam polecenie „brew upgrade <nazwa_pakietu>”, w rzeczywistości aktualizuje wszystkie przestarzałe pakiety, co zajmuje godziny zamiast sekund. To bardzo zły projekt. Prawidłowym sposobem na „WYSTARCZY zaktualizuj jeden pakiet” jest „brew install <nazwa_pakietu>”, co jest również mylącym projektem.
xuancong84
58

Możesz zaktualizować wszystkie nieaktualne pakiety w następujący sposób:

brew install `brew outdated`

lub

brew outdated | xargs brew install

lub

brew upgrade

To pochodzi z miejsca warzenia piwa.

do ulepszenia indywidualnej formuły:

brew install formula-name && brew cleanup formula-name
user689741
źródło
Co robi czyszczenie?
witryny
3
Myślę, że teraz mogę po prostu wpisać brew upgrade outdatedi pominąć wszystkie złożone bzdury.
Warren P,
4
lub po prostubrew upgrade
CharlieMezak
20

Najpierw musisz zaktualizować lokalne formuły, wykonując

brew update

a następnie zaktualizuj pakiet, wykonując

brew upgrade formula-name

Przykładem może być, gdybym chciał zaktualizować mongodb , zrobiłbym coś takiego, zakładając, że mongodb jest już zainstalowany:

brew update && brew upgrade mongodb && brew cleanup mongodb
Józefa
źródło
11

Cóż, właśnie to zrobiłem

brew install mongodb

i postępował zgodnie z instrukcjami wyświetlanymi STDOUTpo zakończeniu instalacji, i wydaje się, że działało dobrze. Wydaje mi się, że działa tak samo jak make installpoprzednia instalacja i nadpisuje (aktualizuje).

ma11hew28
źródło
9
Brew instaluje mongodb w $HOMEBREW_PREFIX/Cellar/mongodb/<version>/, więc najprawdopodobniej masz zainstalowane obie wersje. Następnie łączy się z najnowszą wersją do $HOMEBREW_PREFIX/binitd. Uruchomienie brew cleanup mongodbspowoduje usunięcie starej wersji.
mipadi
2

Nie możesz użyć instalacji naparu do uaktualnienia zainstalowanej formuły. Jeśli chcesz zaktualizować wszystkie nieaktualne formuły, możesz użyć poniższego polecenia.

brew outdated | xargs brew upgrade
UnchartedWorks
źródło
Lepiej wyjaśnij swoje rozwiązanie, aby być pomocnym dla innych użytkowników SO. Wysyłanie samego kodu nie jest tutaj najlepszą praktyką.
Massimiliano Kraus
0

Wolę aktualizować wszystkie formuły homebrew i formuły homebrew beczki .

Dodałem funkcję powłoki Bourne do mojego środowiska dla tego (ładuję plik .bashrc)

function updatebrew() {
set -x;
brew update;
brew cleanup;
brew cask upgrade --greedy
)
}
  • set -x dla przejrzystości: aby terminal wyświetlał w tle wszystko, co robi Homebrew.
  • brew update aby zaktualizować formuły homebrew
  • brew cleanup aby usunąć wszelkie zmiany pozostałe po instalacji
  • brew cask upgrade --greedyzainstaluje wszystkie beczki; zarówno te z informacjami o wersji, jak i te bez
Jonathan Komar
źródło