Używam Homebrew Cask do instalowania aplikacji na OS X. Jak mogę zaktualizować wszystkie zainstalowane beczki?
macos
homebrew
homebrew-cask
enrico.bacis
źródło
źródło
~/Library/Application Support/Brackets/extensions/user
i powinny być zachowywane po uaktualnieniach. Wtyczki systemowe są rzeczywiście przechowywane w pakiecie aplikacji w programieBrackets.app/extensions/default
i są tracone po wymianie pakietu aplikacji, ale najłatwiejszym sposobem byłoby po prostu skopiowanie wtyczek ze starego pakietu do nowego.brew cask upgrade
połączonych 15 zatwierdzeń do Homebrew: masterbrew cask uninstall my-cool-cask
wtedybrew cask install my-cool-cask
.Odpowiedzi:
Wreszcie pojawił się oficjalny mechanizm aktualizacji Homebrew Cask (zobacz wydanie 3396 dotyczące implementacji)! Aby z niego skorzystać, po prostu uruchom to polecenie:
brew cask upgrade
Nie spowoduje to jednak aktualizacji beczek, które nie mają informacji o wersji (
version :latest
) lub aplikacji, które mają wbudowany mechanizm aktualizacji (auto_updates true
). Aby ponownie zainstalować te beczki (i w konsekwencji zaktualizować je, jeśli aktualizacje są dostępne), uruchom polecenie upgrade z--greedy
flagą w następujący sposób:brew cask upgrade --greedy
źródło
brew cask outdated | xargs brew cask reinstall
tylko do ponownej instalacji przestarzałych beczek.brew cask outdated
drukuje tylko nazwy aplikacji, które nie mają włączonej funkcji „automatycznej aktualizacji”. Aby zaktualizować WSZYSTKIE przestarzałe aplikacje, użyjbrew cask outdated --greedy --verbose | grep -v '(latest)' | awk '{print $1}' | xargs brew cask reinstall
homebrew-cask-upgrade
Myślę, że to zdecydowanie najlepsze rozwiązanie do ulepszenia beczek.
źródło: https://github.com/buo/homebrew-cask-upgrade
Instalacja i użytkowanie
(Opcjonalnie) Wymuś aktualizację nieaktualnych aplikacji, w tym oznaczonych jako najnowsze:
źródło
Możliwe jest wylistowanie zainstalowanych beczek z:
I wymuś ponowną instalację beczki za pomocą:
Więc przesyłając wyjście pierwszego polecenia do drugiego, aktualizujemy wszystkie beczki:
źródło
Skrypt Bash do aktualizacji pakietów
zainspirowany odpowiedzią Pascala
Co to robi
brew cask info
najnowszą wersjęźródło: https://gist.github.com/atais/9c72e469b1cbec35c7c430ce03de2a6b
jedna wkładka dla niecierpliwych:
zapisz jako
/usr/local/bin/cask-upgrade
, aby można było uruchomić go lokalnie, jakcask-upgrade
późniejźródło
brew cask info $cask | grep "Not installed"
?$ brew cask info $cask | grep "Not installed"
podaje błądError: This command requires a Cask token
for cask in ${casks[@]}; do
smacks head
oczywiście! nie mogę uwierzyć, że tego nie złapałem.Od grudnia 2017 użycie: ulepszenie beczki zaparzającej
[WYCOFANE od grudnia 2017 r., Kiedy Homebrew wprowadził polecenie aktualizacji dla beczki] Po prostu używam następującego:
źródło
awk '{print $1}'
między nimi.Oto funkcja, którą napisałem do obsługi tego. Zauważ, że osobiście nie chciałem, aby po prostu na ślepo ponownie instalował wszystko, ponieważ niektóre z beczek, których używam, wymagają trochę czasu, aby zainstalować lub wymagają dodatkowego monitu.
źródło
Bazując na odpowiedzi @Atais, ulepszyłem jego logikę do czegoś ładniejszego. Chciałem znaleźć sposób na sprawdzenie pakietów, które mają zostać zaktualizowane, przed faktycznym wymuszeniem aktualizacji.
$ brew-cask.sh
po prostu wyświetla dane wyjściowe podobne do Homebrewbrew update
.✔
wskazuje wszelkie oczekujące aktualizacje.$ brew-cask.sh upgrade
wymusi aktualizację tych pakietów.Kod:
po prostu go zainstaluj (inaczej „Potrzebuję go teraz!”)
Zostało wpisane do mojego
.dotfiles
repozytorium ; więc możesz szybko zainstalować go w swoim za~/bin
pomocą:Następnie użyj go w ten sposób:
Jeśli nie masz
~/bin
w swojej ścieżce, przedrostek~/bin/
do powyższych instrukcji.źródło
brew cask upgrade
upgrade
Komenda została niedawno wprowadzona w Homebrew Beczka i powinien potępiać wszystkich innych metod manualnych opisane w innych odpowiedzi.źródło
Myślę, że używając
da rade. Pomoże to również usunąć poprzednie wersje aplikacji i zainstaluje nowszą wersję.
źródło
brew cask reinstall `brew cask outdated`
poprawiając dostarczony kod z deinspanjer, próbowałem naśladować polecenie noop, podobnie jak to z chocolatey ( aktualizacja choco --noop / choco nieaktualne ).
https://git.io/vgjiL
Jak widać, używam podejścia modułowego, ponieważ mój przypadek użycia trochę się różni. Nie chcę siedzieć przed komputerem i wpisywać tak / nie dla każdej zainstalowanej aplikacji. Chociaż nie ma prawdziwego sposobu na aktualizację beczek (wystarczy przeinstalować najnowszą wersję), najpierw wykonuję aktualizację parzenia, aby mieć informacje, że faktycznie są dostępne aktualizacje .
Następnie przechodzę przez wszystkie beczki, aby wyświetlić ich informacje. Ponieważ wcześniej przygotowałem aktualizację, teraz pojawia się informacja, że najnowsza wersja niektórych beczek nie jest zainstalowana.
W ramach mojej metody aktualizacji faktycznie analizuję polecenie info dla tej konkretnej linii:
Co przekłada się na: „Podaj 3 linie powyżej informacji podanych za każdym razem, gdy przeczytasz wiersz„ nie zainstalowano ”. Następnie usuń każdą linię, która ma w niej łącze, usuń również linię, w której znajduje się znak ':'."
Biorąc pod uwagę strukturę polecenia brew cask info, otrzymujemy jedną linię (bez informacji o wersji, bez adresu URL aplikacji), która odzwierciedla rzeczywistą nazwę beczki, z którą również została zainstalowana.
wyjście informacji o zaparzeniu beczki
W mojej wersji te informacje są teraz drukowane, dzięki czemu można łatwo zobaczyć, które beczki są nieaktualne i można je zaktualizować.
W tym momencie robię przypadek przełącznika, ponieważ może teraz nie ma wystarczająco dużo czasu na aktualizację. To zależy od twojego przypadku użycia. Dla mnie czasami po prostu chcę zobaczyć, co nowego (czekanie na nową wersję, naprawę błędu), ale tak naprawdę nie mam czasu na aktualizację, ponieważ w tej chwili nie chcę zamykać przeglądarki itp.
Więc jeśli ktoś zdecyduje się na „tak”, lista wyczyszczonych nazw beczek jest przekazywana do funkcji aktualizacji, gdzie dla każdej beczki, która została uznana za nieaktualną, jest wydawana ponowna instalacja.
Jeszcze raz dziękuję deinspanjerowi, próbując samemu rozwiązać ten problem, zawsze zapominałem o wcześniejszym wydaniu aktualizacji naparu, więc nie było tam „niezainstalowanej” linii do przetworzenia (podstawa mojego podejścia).
Mam nadzieję, że to było pomocne.
źródło
Sam napisałem taki scenariusz. Proszę spojrzeć na github https://github.com/pesh1983/brew_cask_upgrade . Ma całkiem niezły opis, ale jeśli masz dodatkowe pytania, zapraszam do mnie. Dokonuje uczciwej aktualizacji: odinstaluj i zainstaluj, więc wszelkie niezbędne czyszczenie zostanie wykonane przez samego „brew”.
źródło
źródło
zdobądź przestarzałe beczki:
upgrade cask:
skrypt demonstracyjny:
źródło
Na podstawie tego, co przeczytałem, stworzyłem skrypt, który utworzy plik zawierający listę plików do aktualizacji, w tym aplikacje zdefiniowane jako najnowsze. Następnie możesz zmodyfikować plik, aby dopasować go do swoich wymagań i zainstalować aktualizacje za pomocą mojego skryptu olinst.
Aby uzyskać więcej informacji, odwiedź mój github.
https://github.com/pacav69/caskroom-offline-install
źródło
To naprawdę mnie irytowało, więc stworzyłem ten skrypt, aby zaktualizować wszystkie aplikacje Brew i pozwolić użytkownikowi wybrać, które aplikacje Cask mają zaktualizować. Możesz również wykluczyć aplikacje z rozważenia.
https://github.com/derrekyoung/ScriptsAndUtils/blob/master/brew-cask-upgrade.sh
źródło
używam
źródło
Sprawdź przestarzałe beczki:
Aktualizacja wszystkich przestarzałych beczek:
Jeśli chcesz zaktualizować konkretną beczkę, po prostu dodaj nazwę beczki po aktualizacji (np. 4k-video-downloader):
źródło