我使用Homebrew Cask在OS x上安装应用程序,如何升级所有已安装的Cask ?


当前回答

带有'auto_updates'或'version:latest'的桶将不会升级;通过——贪婪地升级它们:

brew upgrade --cask --greedy

其他回答

根据我所读到的内容,我创建了一个脚本,将创建一个文件,列出要更新的文件,包括定义为最新的应用程序。然后,您可以修改该文件以满足您的需求,并使用我的olinst脚本安装更新。

更多信息请访问我的github。

https://github.com/pacav69/caskroom-offline-install

现在终于有了一个官方的Homebrew Cask升级机制(参见第3396期的实现)!要使用它,只需运行以下命令:

酿造升级——酒桶

但是,这将不会更新没有版本信息的桶(version:latest)或具有内置升级机制的应用程序(auto_updates true)。要重新安装这些桶(并在升级可用时升级它们),运行带有——greedy标志的upgrade命令,如下所示:

酿造升级—酒桶—贪婪

变得过时:

酿造过时——酒桶——贪婪——冗长

这是我写的处理这个的函数。注意,我个人不希望它只是盲目地重新安装所有东西,因为我使用的一些桶需要一段时间才能安装或需要额外的提示。

brew_cask_upgrade() { 
  if [ "$1" != '--continue' ]; then 
    echo "Removing brew cache" 
    rm -rf "$(brew --cache)" 
    echo "Running brew update" 
    brew update 
  fi 
  for c in $(brew cask list); do 
    echo -e "\n\nInstalled versions of $c: " 
    ls /opt/homebrew-cask/Caskroom/$c 
    echo "Cask info for $c" 
    brew cask info $c 
    select ynx in "Yes" "No" "Exit"; do  
      case $ynx in 
        "Yes") echo "Uninstalling $c"; brew cask uninstall --force "$c"; echo "Re-installing $c"; brew cask install "$c"; break;; 
        "No") echo "Skipping $c"; break;; 
        "Exit") echo "Exiting brew_cask_upgrade"; return;; 
      esac 
    done 
  done 
} 

升级所有未标记为“可自动升级”的桶

brew upgrade --cask

升级所有桶(“可自动升级”和“不可自动升级”)

brew upgrade --cask --greedy

这样的剧本是我自己做的。请查看github https://github.com/pesh1983/brew_cask_upgrade。它有很好的描述,但如果你有任何其他问题,请随时问我。它进行了公平的升级:卸载和安装,因此任何必要的清理将由“brew”本身执行。