58 votes

Existe-t-il un moyen de mettre à jour brew cask

Y a-t-il un moyen de mettre à jour toutes les brew cask s ? Quelque chose comme brew cask upgrade ?

6voto

Farab Alipanah Points 31

Les fûts avec 'auto_updates' ou 'version :latest' ne seront pas mis à jour ; passez. --greedy pour les mettre à niveau :

brew upgrade --cask --greedy

2 votes

Si vous êtes venu ici en 2022, c'est la réponse.

5voto

Borislav Ivanov Points 101

Voici ce que j'ai dans mon .bash_profile que je lance pour faire une mise à jour complète de homebrew. J'ai "épinglé" quelques éléments pour éviter que des téléchargements gigantesques ne soient récupérés à chaque mise à jour, parce que leurs versions sont toujours "les plus récentes" ou qu'elles ne devraient pas être mises à jour.

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

2voto

sqren Points 161

Pour réinstaller les applications de brew cask en zsh :

brew cask update;

for app in $(brew cask list); do
    brew cask uninstall --force ${app}
    brew cask install --force ${app}    
done

0 votes

Ce n'est pas très bon pour les utilisateurs qui peuvent avoir beaucoup d'informations sur la santé. brew cask les installations qui nécessitent l'intervention de l'utilisateur (par exemple - quartz) . De même, il n'est pas nécessaire de désinstaller chaque application avant de la réinstaller. Idéalement, vous devriez également exécuter une mise à jour comme brew cask update d'abord.

0 votes

@Danijel-JamesW Malheureusement c'est le cas si vous ne voulez pas que l'ancienne version reste.

2voto

DarrenPMeyer Points 111

Ce serait probablement plus approprié comme commentaire, mais je n'ai pas assez de réputation pour en laisser un, alors...

Au moment où nous écrivons ces lignes, homebrew-cask a son propre système de mise à jour, et donc les scripts et outils tiers ne sont plus nécessaires.

Pour répertorier les fûts périmés : brew cask outdated

Pour mettre à niveau tous les fûts périmés : brew cask upgrade

1voto

Derrek Points 11

Cela m'a vraiment irrité alors j'ai créé ce script pour mettre à jour toutes les applications Brew et permettre à l'utilisateur de choisir les applications Cask à mettre à jour. Vous pouvez également exclure des apps de la considération.

https://github.com/derrekyoung/ScriptsAndUtils/blob/master/brew-cask-upgrade.sh

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X