58 votos

Hay alguna manera de actualizar cerveza de barril

Hay alguna forma de actualizar todos los brew casks? Algo como brew cask upgrade?

24voto

Atais Puntos 131

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 :-)

11voto

Bertolt Puntos 524

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

9voto

jherran Puntos 6511

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 comando brew 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 

5voto

MithrilTuxedo Puntos 31

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)
}

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X