Jak usunąć nieaktualne beczki z Homebrew?

9

Używam homebrew-cask, aby aktualizować ekosystem aplikacji. Jest to świetne, gdy utrzymujesz kilka komputerów w domu, w podróży lub w podróży.

Jednak gdy niektóre pakiety są aktualizowane (np. Google Chrome), mam zainstalowane różne współbieżne wersje (które są widoczne dla systemu operacyjnego):

$ ls / opt / homebrew-cask / Caskroom / google-chrome / latest stable-channel

Dzieje się tak podczas aktualizacji beczki:

$ 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 ~

Jak zachować tylko najnowsze?

meduz
źródło
próbowałeś brew cleanupi brew prune?
dwightk
tak, próbowałem, ale nie dotyczy to beczek ...
meduz
1
Jest to najwyraźniej omówione na @ github.com/caskroom/homebrew-cask/issues/309
meduz 1'14
Wciąż szukam odpowiedzi. Moje ostatnie próby obejmują usunięcie wszystkich aplikacji i ponowną instalację, niezbyt ekologiczną.
meduz

Odpowiedzi:

1

W terminalu wpisz:

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

Wskazówka: Skopiuj i wklej powyższy wiersz poleceń do Terminala.

imię
źródło
i nie udzielaj tej samej odpowiedzi na więcej niż jedno pytanie. Jeśli odpowiedź na to samo pytanie jest taka sama, pytanie powinno zostać oflagowane / zamknięte jako duplikat
użytkownik151019
cześć @nazwa, czy możesz edytować swoją odpowiedź, aby wiedzieć, co robi, wydaje się tajemnicza (mój cytat dnia: „stackoverflow nie dotyczy rozwiązań, ale odpowiedzi” :-))
meduz 30.04.2016
Osobom, które próbują edytować ten post, zmieniając podaną złożoną linię poleceń na skrypt, przestańcie! Autor napisał to jako złożony wiersz poleceń, a nie skrypt. Prosimy uszanować decyzję autora o opublikowaniu go jako złożonej linii poleceń, a nie skryptu!
user3439894
Pamiętaj z nowym Homebrew Caskroom miejscu trzeba zmienić /opt/homebrew-cask/Caskroom/na /usr/local/Caskroom/.
Spotlight
To tylko informacja dla tych, którzy uruchomią to w przyszłości, wygląda na to, że odinstalowuje / ponownie instaluje wszystkie moje beczki. Nie wydaje się prawidłowo wykrywać mojej zainstalowanej wersji? „[*] Znaleziono atom na liście beczek. Najnowsza dostępna wersja to 1.11.2. Zainstalowałeś wersję:”
Glenn 'devalias'