Hay alguna forma de actualizar todos los brew cask
s? Algo como brew cask upgrade
?
Respuestas
¿Demasiados anuncios?Bash script para actualizar los paquetes
inspirado por Pascal respuesta
#!/bin/bash
casks=( $(brew cask list) )
for cask in ${casks[@]}
do
# in the first line there is version
current="$(brew cask info $cask | sed -n '1p' | sed -n 's/^.*: \(.*\)$/\1/p')"
installed=( $(ls /opt/homebrew-cask/Caskroom/$cask))
if (! [[ " ${installed[@]} " == *" $current "* ]]); then
(set -x; brew cask install $cask --force;)
fi
done
fuente: https://gist.github.com/atais/5d3ec79e67f221cb55b7
uno forro para impacientes:
curl -s https://gist.githubusercontent.com/atais/5d3ec79e67f221cb55b7/raw/f6e6b647e6f90939c016ba88e591529d143cb33d/cash_upgrade.sh | bash /dev/stdin
Lo que hace
- lea la lista de barricas
- comprobar el
brew cask info
para la versión más reciente - compruebe
/opt/homebrew-cask/Caskroom/$cask
dir si la versión que existe - instalar si la versión no está presente
Probado en mí mismo :-)
Como la cita en la otra respuesta, dice, actualmente no hay manera de actualizar todo actualizado barricas.
La segunda parte de la respuesta es incorrecta, sin embargo,: brew upgrade --all
no se puede actualizar la barrica.
La única manera de actualizar todos los cofres es para obtener una lista de los que están instalados los cofres y los fuerza a ser reinstalado - incluyendo a aquellos que no han cambiado!
En peces, se podría hacer así:
for app in (brew cask list)
brew cask install --force $app
end
De la homebrew cask
documentación:
Desde el homebrew casco repositorio es un Homebrew Toca, te tire hacia abajo la última Barricas cada vez que se emita el regular Homebrew comando
brew update
. En la actualidad, homebrew casco, no siempre puede detectar si un La aplicación ha sido actualizada. Usted puede forzar una actualización mediante el comandobrew cask install --force
. Estamos trabajando en la mejora de esta.
El siguiente debería ser suficiente para actualizar tanto brew formulaes y barricas.
brew upgrade --all
He aquí lo que tengo en mi .bash_profile que me quedo a hacer una actualización completa de pasar de homebrew. I "pin" un par de cosas para mantener gigantesco descargas de ser repetidas veces exagerado para cada actualización, ya que sus versiones son siempre más "reciente" o que no debería ser actualizado.
boop() {
brew update && brew upgrade && brew cleanup \
&& cask-upgrade && cask-retire && brew cask cleanup \
&& brew doctor && brew cask doctor
}
__is_pinned() {
local pinned=";pixate-studio;sketchup;skype;"
[[ *";${1};"* != "${pinned}" ]] && return 0 || return 1
}
cask-upgrade() {
while read -r; do
reply=(${REPLY})
name="${reply[0]}"
vers="${reply[1]}"
if ! __is_pinned "${name}"; then
if [[ "${vers}" == "latest" ]]; then
brew cask install "${name}" --force
else
brew cask install "${name}" 2> >(grep -v "re-install")
fi
fi
done < <(brew cask list --versions)
}
cask-retire() {
room="/opt/homebrew-cask/Caskroom"
while read -r; do
reply=(${REPLY})
name="${reply[0]}"
vers="${reply[1]}"
if ! __is_pinned "${name}"; then
for inst in $(ls "${room}/${name}"); do
if [[ "${inst}" != "${vers}" ]]; then
echo "Removing ${name} version ${inst}"
rm -r "${room}/${name}/${inst}"
fi
done
fi
done < <(brew cask list --versions)
}