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 ?

58voto

Deepak Sarda Points 530

En date de décembre 2017, brew cask upgrade est une chose.

https://github.com/Homebrew/brew/pull/3396

15 votes

brew cask upgrade est déprécié en faveur de brew upgrade --cask .

12 votes

brew upgrade sans le --formula o --cask le drapeau met maintenant à jour les deux fûts périmés et formules.

24voto

Atais Points 597

Bash script pour mettre à niveau les paquets

inspiré par Réponse de Pascal

#!/usr/bin/env bash

(set -x; brew update;)

(set -x; brew cleanup;)
(set -x; brew cask cleanup;)

red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`

casks=( $(brew cask list) )

for cask in ${casks[@]}
do
    version=$(brew cask info $cask | sed -n "s/$cask:\ \(.*\)/\1/p")
    installed=$(find "/usr/local/Caskroom/$cask" -type d -maxdepth 1 -maxdepth 1 -name "$version")

    if [[ -z $installed ]]; then
        echo "${red}${cask}${reset} requires ${red}update${reset}."
        (set -x; brew cask uninstall $cask --force;)
        (set -x; brew cask install $cask --force;)
    else
        echo "${red}${cask}${reset} is ${green}up-to-date${reset}."
    fi
done

Ce qu'il fait

  • mise à jour du brassage/brassage du fût, nettoyage
  • lire la liste des fûts
  • vérifier le brew cask info pour la version la plus récente
  • installe la nouvelle version si elle est disponible (et supprime toutes les anciennes versions !)

source : https://gist.github.com/atais/9c72e469b1cbec35c7c430ce03de2a6b

Une phrase pour les impatients :

curl -s https://gist.githubusercontent.com/atais/9c72e469b1cbec35c7c430ce03de2a6b/raw/36808a0544628398f26b48f7a3c7b309872ca2c6/cask_upgrade.sh | bash /dev/stdin

sauvegarder en tant que /usr/local/bin/cask-upgrade Vous pouvez donc l'exécuter localement en tant que cask-upgrade plus tard

0 votes

Ça a marché comme un charme. Ce serait bien de pouvoir demander d'abord une liste des paquets périmés. Il est assez facile de modifier le script pour le faire.

0 votes

Merci ! As-tu essayé de l'intégrer directement dans Homebrew Cask ? Je viens de le convertir en poisson et ça marche pour moi aussi. Il m'a également révélé que certaines anciennes versions étaient encore présentes après que j'ai installé les versions actuelles.

0 votes

Vous devez exécuter brew cask uninstall --force avant d'installer la nouvelle version si vous ne voulez pas que l'ancienne version reste là.

23voto

Atais Points 597

homebrew-cask-upgrade

Je pense que c'est de loin la meilleure solution pour moderniser les fûts.
source : https://github.com/buo/homebrew-cask-upgrade

Installation et utilisation

brew tap buo/cask-upgrade
brew update
brew cu

(Facultatif) Forcez la mise à niveau des applications obsolètes, y compris celles marquées comme les plus récentes :

brew cu --all

0 votes

Très bonne solution. brew cu -a liste tous les fûts installés et leur version (actuelle ou récente) et permet de les mettre à jour individuellement ou tous à la fois. Également bien conçu et documenté ( brew help cu ).

0 votes

Copie de stackoverflow.com/questions/31968664/ . Ne laissez pas les administrateurs vous attraper ;)

0 votes

Même question, même réponse

11voto

Pascal Points 266

Comme le dit la citation dans l'autre réponse, il n'y a actuellement aucun moyen de mettre à niveau tous les fûts mis à jour.

La deuxième partie de la réponse est fausse, cependant : brew upgrade --all ne peuvent pas mettre à niveau les fûts.

La seule façon de mettre à niveau tous les fûts est d'obtenir une liste des fûts installés et de les forcer à être réinstallés - y compris ceux qui n'ont pas été modifiés !

En poisson tu pourrais faire ça comme ça :

for app in (brew cask list)
    brew cask install --force $app
end

éditer :

Atais a créé un script qui fonctionne : Bash script pour mettre à niveau les paquets .
Veuillez upvoter sa réponse plutôt que celle-ci.

1 votes

Gardez à l'esprit que cela va réinstaller toutes vos applications, et pas seulement mettre à jour l'obsolète :(

1 votes

Pour mettre à jour les listes de cask, vous devez exécuter brew cask update puis suivez la réponse précédente pour mettre à jour uniquement les paquets qui sont actuellement périmés ici : apple.stackexchange.com/a/231020/49601

0 votes

@Danijel-JamesW J'ai annulé votre changement car il était erroné. C'est peut-être la façon de faire dans d'autres shells, mais ce n'est pas le cas dans fish.

9voto

jherran Points 12554

De la homebrew cask documentation :

Puisque le dépôt homebrew-cask est un Homebrew Tap, vous allez tirer sur les derniers casks chaque fois que vous utilisez la commande Homebrew habituelle. brew update . Actuellement, homebrew-cask ne peut pas toujours détecter si une application a été mise à jour. Vous pouvez forcer une mise à jour via la commande brew cask install --force . Nous travaillons à l'amélioration de cette situation.

Les éléments suivants devraient suffire à améliorer les formules de brassage et les fûts.

brew upgrade --all

5 votes

Ce n'est plus vrai aujourd'hui. brew upgrade --all est équivalent à brew upgrade maintenant. Les fûts ne sont pas mis à niveau par cette commande.

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