Wie entferne ich veraltete Fässer aus Homebrew?

9

ich benutze Homebrew-Fass um mein Anwendungs-Ökosystem auf dem neuesten Stand zu halten. Dies ist ideal, wenn Sie mehrere Computer zu Hause, auf Reisen oder unterwegs warten.

Wenn jedoch einige Pakete aktualisiert werden (wie z. B. Google Chrome), werden auf meinem Computer unterschiedliche Versionen gleichzeitig installiert (und vom Betriebssystem erkannt):

$ ls / opt / homebrew-cask / Caskroom / google-chrome /   letzter Stable-Channel

Dies passiert beim Upgrade eines Fasses:

$ ls -l /opt/homebrew-cask/Caskroom/tunnelblick
total 0
drwxr-xr-x 5 foo staff 238 Mar 11 07:42 3.3.0
drwxr-xr-x 5 foo staff 238 May 13 13:53 3.3.2
[13:00:40] foo at bar in ~
$ brew cask install --force tunnelblick
==> Caveats
For security reasons, Tunnelblick must be installed to /Applications and will request to be moved at launch.

==> Downloading https://downloads.sourceforge.net/project/tunnelblick/All%20files/Tunnelblick_3.3.4.dmg
######################################################################## 100.0%
==> It seems there is already an App at '/Applications/Tunnelblick.app'; not linking.
🍺  tunnelblick installed to '/opt/homebrew-cask/Caskroom/tunnelblick/3.3.4' (236 files, 20M)

$ ls -l /opt/homebrew-cask/Caskroom/tunnelblick
total 0
drwxr-xr-x 5 foo staff 238 Mar 11 07:42 3.3.0
drwxr-xr-x 5 foo staff 238 May 13 13:53 3.3.2
drwxr-xr-x 5 foo staff 238 Jun 26 13:01 3.3.4
[13:01:26] foo at bar in ~

Wie behalte ich nur das aktuellste?

meduz
quelle
Hast du es versucht brew cleanup und brew prune?
dwightk
ja, ich habe es versucht, aber es gilt nicht für Fässer ...
meduz
1
Dies wird anscheinend diskutiert @ github.com/caskroom/homebrew-cask/issues/309
meduz
Immer noch auf der Suche nach einer Antwort. Meine letzten Versuche beinhalten das Entfernen aller Anwendungen und das erneute Installieren, nicht sehr ökologisch.
meduz

Antworten:

1

Geben Sie im Terminal Folgendes ein:

for app in $(brew cask list); do cver="$(brew cask info "${app}" | head -n 1 | cut -d " " -f 2)"; ivers=$(ls -1 "/opt/homebrew-cask/Caskroom/${app}/.metadata/" | tr '\n' ' ' | sed -e 's/ $//'); aivers=(${ivers}); nvers=$(echo ${#aivers[@]}); echo "[*] Found ${app} in cask list. Latest available version is ${cver}. You have installed version(s): ${overs}"; if [[ ${nvers} -eq 1 ]]; then echo "${ivers}" | grep -q "^${cver}$" && { echo "[*] Latest version already installed :) Skipping changes ..."; continue; }; fi; echo "[+] Fixing from ${ivers} to ${cver} ..."; brew cask uninstall "${app}" --force; brew cask install "${app}"; done

Tipp: Kopieren Sie die obige Befehlszeile und fügen Sie sie in Terminal ein.

name
quelle
und geben Sie nicht die gleiche Antwort auf mehr als eine Frage. Wenn Fragen gleich beantwortet werden, dann die Frage sollte als Duplikat gekennzeichnet / geschlossen sein
Mark
hi @name, könnten Sie Ihre Antwort bearbeiten, um zu wissen, was es tut, scheint kryptisch (mein Zitat des Tages: "Bei stackoverflow geht es nicht um Lösungen, sondern um Antworten" :-))
meduz
Wenn Sie weiterhin versuchen, diesen Beitrag zu bearbeiten, ändern Sie die angegebene komplexe Befehlszeile in ein Skript, und hören Sie auf! Der Autor schrieb es als komplexe Befehlszeile, nicht als Skript. Bitte respektieren Sie die Entscheidung des Autors, es als komplexe Befehlszeile und nicht als Skript zu veröffentlichen!
user3439894
Denken Sie daran, dass Sie den neuen Homebrew Caskroom-Standort ändern müssen /opt/homebrew-cask/Caskroom/ zu /usr/local/Caskroom/.
Spotlight
Nur eine Information für diejenigen, die dies in Zukunft ausführen. Es scheint, als würde es alle meine Fässer deinstallieren / neu installieren. Scheint meine installierte Version nicht richtig zu erkennen? "[*] Atom in Fassliste gefunden. Neueste verfügbare Version ist 1.11.2. Sie haben Version (en) installiert:"
devalias