Come rimuovere le botti obsolete da Homebrew?


9

Sto usando homebrew-botte per mantenere aggiornato il mio ecosistema di applicazioni. È ottimo quando si mantengono diversi computer a casa, in viaggio o in viaggio.

Tuttavia, quando alcuni pacchetti vengono aggiornati (come Google Chrome), finisco per avere diverse versioni simultanee installate (e che sono viste dal sistema operativo):

$ ls / opt / homebrew-cask / Caskroom / google-chrome / ultimo canale stabile

Questo succede quando si aggiorna una botte:

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

Come posso conservare solo i più recenti?


hai provato brew cleanupe brew prune?
dwightk,

sì, ci ho provato ma non si applica alle botti ...
Meduz,

1
Questo è apparentemente discusso @ github.com/caskroom/homebrew-cask/issues/309
meduz

Sto ancora cercando una risposta. I miei ultimi tentativi riguardano la rimozione di tutte le applicazioni e la reinstallazione, non molto ecologiche.
Meduz,

Risposte:


1

In Terminale, digitare:

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

Suggerimento: copia e incolla la riga di comando sopra in Terminale.


e non dare la stessa risposta a più di una domanda. Se le domande hanno la stessa risposta, allora la domanda dovrebbe essere contrassegnata / chiusa come duplicata
user151019

ciao @name, potresti modificare la tua risposta per sapere cosa fa, sembra criptico (la mia citazione del giorno: "stackoverflow non riguarda soluzioni, ma risposte" :-))
meduz

Alle persone che continuano a provare a modificare questo post cambiando la complessa riga di comando in uno script, per favore basta! L'autore l'ha scritto come una riga di comando complessa, non come una sceneggiatura. Si prega di rispettare la decisione degli autori di pubblicarlo come una riga di comando complessa, non come uno script!
user3439894,

Ricorda con la nuova posizione Homebrew Caskroom è necessario cambiare /opt/homebrew-cask/Caskroom/a /usr/local/Caskroom/.
Spotlight

Solo un FYI per coloro che eseguiranno questo in futuro, sembra che stia disinstallando / reinstallando tutte le mie botti. Non sembra rilevare correttamente la mia versione installata? "[*] Trovato atom nella lista
dei barili
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.