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ć?

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


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

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

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).


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.