Esiste un modo per aggiornare la fermentazione

35

C'è un modo per aggiornare tutto brew cask s? Qualcosa come brew cask upgrade ?

    
posta demas 04.06.2015 - 10:58
fonte

12 risposte

23

Script di Bash per aggiornare i pacchetti

ispirato alla risposta 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:\ \(.*\)//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

Che cosa fa

  • aggiorna brew / brew cask, ripulisci
  • leggi l'elenco dei caschi
  • controlla brew cask info per la versione più recente
  • installa la nuova versione se disponibile (e rimuove tutte le vecchie versioni!)

fonte: link

un rivestimento per impaziente:

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

salva come /usr/local/bin/cask-upgrade , quindi puoi eseguirlo localmente come cask-upgrade più tardi

    
risposta data 15.03.2016 - 02:00
fonte
19

homebrew-botte-upgrade

Penso che questa sia di gran lunga la migliore soluzione per aggiornare le botti.
source: link

Installazione e amp; utilizzo

brew tap buo/cask-upgrade
brew update
brew cu

(Opzionale) Forza l'aggiornamento delle app obsolete, incluse quelle contrassegnate come ultime:

brew cu --all
    
risposta data 21.09.2016 - 11:19
fonte
12

Come dice la citazione nell'altra risposta, non esiste attualmente alcun modo per aggiornare tutte le botti aggiornate.

La seconda parte della risposta è sbagliata, tuttavia: brew upgrade --all non può aggiornare le botti.

L'unico modo per aggiornare tutte le botti è quello di ottenere un elenco delle botti installate e forzarle a reinstallarle, incluse quelle che non sono state cambiate!

In pesce , puoi fare così:

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

modifica:

Atais ha creato uno script che funziona: Script di Bash per aggiornare i pacchetti .
Per favore, invertire la sua risposta piuttosto che questa.

    
risposta data 11.11.2015 - 14:38
fonte
11

A partire da dicembre 2017, brew cask upgrade è una cosa.

link

    
risposta data 06.12.2017 - 03:25
fonte
10

Dalla documentazione di homebrew cask :

Since the homebrew-cask repository is a Homebrew Tap, you'll pull down the latest Casks every time you issue the regular Homebrew command brew update. Currently, homebrew-cask cannot always detect if an Application has been updated. You can force an update via the command brew cask install --force. We are working on improving this.

Quanto segue dovrebbe essere sufficiente per aggiornare sia le preparazioni di fermentazione che le botti.

brew upgrade --all 
    
risposta data 04.06.2015 - 11:14
fonte
6

Ecco cosa ho nel mio .bash_profile che eseguo per eseguire un passaggio di aggiornamento completo di homebrew. I "pin" un paio di elementi per mantenere download giganteschi da essere ripetutamente recuperati per ogni aggiornamento, perché le loro versioni sono sempre "più recenti" o non dovrebbero essere aggiornati.

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)
}
    
risposta data 22.12.2015 - 01:26
fonte
2

Per reinstallare le app di brew cask in zsh:

brew cask update;

for app in $(brew cask list); do
    brew cask uninstall --force ${app}
    brew cask install --force ${app}    
done
    
risposta data 21.04.2016 - 09:35
fonte
1

Questo mi ha davvero infastidito, quindi ho creato questo script per aggiornare tutte le app Brew e consentire all'utente di scegliere le app di Cask da aggiornare. Puoi escludere anche le app.

link

    
risposta data 05.08.2016 - 23:42
fonte
1

Raccomando la risposta di @ eduncan911 in la domanda corrispondente su Stack Overflow .

In breve:

  • $ brew-cask.sh elenca solo un risultato simile a brew update di Homebrew. la lista qui sopra mostra tutti i pacchetti installati, con una percentuale verde% co_de che indica eventuali aggiornamenti in sospeso.
  • L'aggiornamento $ imporrà l'aggiornamento di tali pacchetti.

Installa dal suo repository con:

$ curl -L https://raw.githubusercontent.com/eduncan911/dotfiles/master/bin/brew-cask.sh --create-dirs -o ~/bin/brew-cask.sh
$ chmod 755 ~/bin/brew-cask.sh

Quindi usalo in questo modo:

$ brew-cask.sh
$ brew-cask.sh upgrade
    
risposta data 25.10.2016 - 09:54
fonte
1

Ho realizzato un copione di questo tipo da solo. Per favore guarda il github link . Ha una descrizione abbastanza buona, ma se hai altre domande, sentiti libero di chiedermelo. Effettua un aggiornamento corretto: disinstallalo e installalo, quindi ogni operazione di pulizia necessaria verrà eseguita da "brew" stesso.

    
risposta data 24.01.2017 - 11:20
fonte
1

Probabilmente sarebbe più appropriato come commento, ma non ho abbastanza reputazione per lasciarne uno, quindi ...

Al momento della stesura di questo documento, homebrew-cask ha il proprio sistema di aggiornamento, pertanto gli script e gli strumenti di terze parti non sono più necessari.

Per elencare le botti obsolete: brew cask outdated

Per aggiornare tutte le botti obsolete: brew cask upgrade

    
risposta data 30.12.2018 - 19:55
fonte
0
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
    
risposta data 28.04.2016 - 10:53
fonte

Leggi altre domande sui tag