¿Cómo eliminar barriles desactualizados de Homebrew?

9

Estoy usando homebrew-cask para mantener mi ecosistema de aplicaciones actualizado. Es excelente para mantener varias computadoras en casa, para viajes o para viajes.

Sin embargo, cuando algunos paquetes se están actualizando (como Google Chrome), acabo de tener diferentes versiones concurrentes instaladas (y que son vistas por el sistema operativo):

  

$ ls / opt / homebrew-cask / Caskroom / google-chrome /   último canal estable

Esto sucede al actualizar un barril:

$ 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.
                    
pregunta meduz 21.06.2014 - 13:25

1 respuesta

1

En la Terminal, escriba:

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

Sugerencia: copie y pegue la línea de comando anterior en la Terminal.

    
respondido por el name 28.04.2016 - 10:46

Lea otras preguntas en las etiquetas