Ich verwende Homebrew Cask , um Anwendungen unter OS X zu installieren. Wie aktualisiere ich alle installierten Fässer?
macos
homebrew
homebrew-cask
enrico.bacis
quelle
quelle
~/Library/Application Support/Brackets/extensions/user
, die über Upgrades hinweg bestehen bleiben sollten. System-Plugins werden zwar im App-Bundle gespeichertBrackets.app/extensions/default
, diese gehen jedoch verloren, wenn Sie das App-Bundle ersetzen. Am einfachsten ist es jedoch, die Plugins vom alten auf das neue Bundle zu kopieren.brew cask upgrade
brew cask uninstall my-cool-cask
dahinbrew cask install my-cool-cask
.Antworten:
Es gibt jetzt endlich einen offiziellen Upgrade-Mechanismus für Homebrew Cask ( Implementierung siehe Ausgabe 3396 )! Um es zu verwenden, führen Sie einfach diesen Befehl aus:
brew cask upgrade
Dies aktualisiert jedoch keine Casks ohne Versionsinformationen (
version :latest
) oder Anwendungen mit integriertem Upgrade-Mechanismus (auto_updates true
). Führen Sie den Befehl upgrade mit dem folgenden--greedy
Flag aus , um diese Fässer neu zu installieren (und sie folglich zu aktualisieren, wenn Upgrades verfügbar sind) :brew cask upgrade --greedy
quelle
brew cask outdated | xargs brew cask reinstall
nur veraltete Fässer neu installieren.brew cask outdated
nur Namen von Apps ausgedruckt werden, für die "Auto-Update" nicht aktiviert ist. Um ALLE veralteten Apps zu aktualisieren, verwenden Siebrew cask outdated --greedy --verbose | grep -v '(latest)' | awk '{print $1}' | xargs brew cask reinstall
Homebrew-Fass-Upgrade
Ich denke, dies ist bei weitem die beste Lösung, um die Fässer aufzurüsten.
Quelle: https://github.com/buo/homebrew-cask-upgrade
Installation & Nutzung
(Optional) Erzwingen Sie das Upgrade veralteter Apps, einschließlich der als aktuell gekennzeichneten:
quelle
Es ist möglich, die installierten Fässer aufzulisten mit:
Und erzwingen Sie die Neuinstallation eines Fasses mit:
Wenn wir also die Ausgabe des ersten Befehls in den zweiten Befehl leiten, aktualisieren wir alle Fässer:
quelle
Bash-Skript zum Aktualisieren von Paketen
inspiriert von Pascal Antwort
Was es macht
brew cask info
für die neueste VersionQuelle: https://gist.github.com/atais/9c72e469b1cbec35c7c430ce03de2a6b
Ein Liner für Ungeduldige:
Speichern unter
/usr/local/bin/cask-upgrade
, damit Sie escask-upgrade
später als lokal ausführen könnenquelle
brew cask info $cask | grep "Not installed"
?$ brew cask info $cask | grep "Not installed"
gibt den FehlerError: This command requires a Cask token
for cask in ${casks[@]}; do
smacks head
offensichtlich! Ich kann nicht glauben, dass ich das nicht verstanden habe.Ab Dezember 2017 verwenden: Braufass Upgrade
[VERRINGERT seit Dezember 2017, als Homebrew den Upgrade-Befehl für das Fass einführte] Ich verwende einfach Folgendes:
quelle
awk '{print $1}'
zwischen den beiden gepfeift habe .Hier ist die Funktion, die ich geschrieben habe, um damit umzugehen. Beachten Sie, dass ich persönlich nicht wollte, dass alles blind neu installiert wird, da einige der von mir verwendeten Fässer eine Weile brauchen, um installiert zu werden, oder zusätzliche Eingabeaufforderungen erfordern.
quelle
Basierend auf der Antwort von @Atais habe ich seine Logik zu etwas Schönerem erweitert. Ich wollte eine Möglichkeit, die zu aktualisierenden Pakete zuerst zu überprüfen, bevor das Upgrade tatsächlich erzwungen wird.
$ brew-cask.sh
listet nur eine Ausgabe ähnlich der von Homebrew aufbrew update
.✔
alle ausstehenden Updates anzeigt.$ brew-cask.sh upgrade
erzwingt das Upgrade dieser Pakete.Code:
installiere es einfach (auch bekannt als "Ich brauche es jetzt!")
Es ist in mein
.dotfiles
Repo eingecheckt ; So können Sie es schnell in Ihrem installieren~/bin
mit:Dann benutze es so:
Wenn Sie nicht
~/bin
in Ihrem Pfad haben, stellen Sie~/bin/
die obigen Anweisungen voran.quelle
brew cask upgrade
Der
upgrade
Befehl wurde kürzlich in Homebrew Cask eingeführt und sollte alle anderen manuellen Methoden, die in den anderen Antworten beschrieben sind, ablehnen.quelle
Ich denke mit
wird den Trick machen. Dies hilft auch dabei, die vorherigen Versionen der Anwendung zu entfernen und die neuere Version zu installieren.
quelle
brew cask reinstall `brew cask outdated`
Als ich den von deinspanjer bereitgestellten Code verbesserte, versuchte ich, einen noop-Befehl zu imitieren, ähnlich dem vonocolatey ( choco update --noop / choco veraltet ).
https://git.io/vgjiL
Wie man sieht, verwende ich einen modularen Ansatz, da sich mein Anwendungsfall ein wenig unterscheidet. Ich möchte nicht vor meinem Computer sitzen und für jede installierte App Ja / Nein eingeben. Obwohl es keine echte Möglichkeit gibt, Fässer zu aktualisieren (nur die neueste Version neu zu installieren), brühe ich zuerst ein Update, um die Information zu erhalten, dass tatsächlich Updates verfügbar sind .
Als nächstes gehe ich durch alle Fässer, um ihre Informationen anzuzeigen. Da ich zuvor ein Update durchgeführt habe, wird jetzt die Information bereitgestellt, dass die neueste Version eines Fasses nicht installiert ist.
Innerhalb meiner Aktualisierungsmethode analysiere ich tatsächlich den Befehl info für diese bestimmte Zeile:
Dies bedeutet: "Geben Sie die 3 obigen Zeilen der bereitgestellten Informationen an, wenn Sie die Zeile" nicht installiert "lesen. Löschen Sie dann alle Zeilen, in denen ein Link enthalten ist, und löschen Sie auch eine Zeile mit einem ':'."
In Anbetracht der Struktur des Befehls "Brew Cask Info" erhalten wir eine Zeile (keine Versionsinfo, keine App-URL), die den tatsächlichen Namen des Fasses widerspiegelt, mit dem es auch installiert wurde.
Ausgabe der Brühfassinfo
In meiner Version sind diese Informationen jetzt ausgedruckt, sodass man leicht erkennen kann, welche Fässer veraltet sind und aktualisiert werden könnten.
An dieser Stelle mache ich einen Switch-Fall, weil vielleicht gerade nicht genug Zeit ist, um Dinge zu aktualisieren. Dies hängt von Ihrem Anwendungsfall ab. Für mich möchte ich manchmal nur sehen, was neu ist (auf eine neue Version warten, einen Bugfix), aber eigentlich keine Zeit haben, Dinge zu aktualisieren, weil ich meinen Browser momentan nicht schließen möchte usw.
Wenn Sie sich also für "Ja" entscheiden, wird die Liste der gereinigten Namen der Fässer an die Aktualisierungsfunktion übergeben, in der für jedes Fass, das als veraltet eingestuft wurde, die Neuinstallation ausgegeben wird.
Nochmals vielen Dank an deinspanjer, als ich versuchte, dieses Problem für mich selbst zu lösen, vergaß ich immer, vorher ein Brew-Update herauszugeben, sodass es dort keine "nicht installierte" Zeile gab, die tatsächlich analysiert werden konnte (die Grundlage meines gesamten Ansatzes).
Ich hoffe das war hilfreich.
quelle
Ich habe ein solches Drehbuch selbst gemacht. Bitte schauen Sie sich den Github https://github.com/pesh1983/brew_cask_upgrade an . Es hat eine ziemlich gute Beschreibung, aber wenn Sie weitere Fragen haben, können Sie mich gerne fragen. Es wird ein faires Upgrade durchgeführt: Deinstallieren und installieren, sodass alle erforderlichen Bereinigungen von "Brew" selbst durchgeführt werden.
quelle
quelle
veraltete Fässer bekommen:
Upgrade-Fass:
Demo-Skript:
quelle
Basierend auf dem, was ich gelesen habe, habe ich ein Skript erstellt, das eine Datei erstellt, in der die zu aktualisierenden Dateien aufgelistet sind, einschließlich Apps, die als aktuell definiert sind. Sie können die Datei dann an Ihre Anforderungen anpassen und Updates mit meinem olinst-Skript installieren.
Für weitere Informationen besuchen Sie meinen Github.
https://github.com/pacav69/caskroom-offline-install
quelle
Das hat mich wirklich geärgert, deshalb habe ich dieses Skript erstellt, um alle Brew-Apps zu aktualisieren und dem Benutzer die Auswahl der zu aktualisierenden Cask-Apps zu ermöglichen. Sie können Apps auch von der Prüfung ausschließen.
https://github.com/derrekyoung/ScriptsAndUtils/blob/master/brew-cask-upgrade.sh
quelle
ich benutze
quelle
Überprüfen Sie veraltete Fässer:
Aktualisieren aller veralteten Fässer:
Wenn Sie ein bestimmtes Fass aktualisieren möchten, fügen Sie nach dem Upgrade einfach den Fassnamen hinzu (Beispiel: 4k-Video-Downloader):
quelle