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


当前回答

我和鱼壳打交道。 所以我使用:brew upgrade (brew list—cask)。 这对我很管用。

其他回答

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

酿造升级——酒桶

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

酿造升级—酒桶—贪婪

变得过时:

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

可以列出已安装的桶:

brew cask list

并强制重新安装桶与:

brew cask install --force CASK_NAME

因此,将第一个命令的输出输出到第二个命令中,我们更新了所有的桶:

brew cask list | xargs brew cask install --force
for cask in $(brew list --cask); do brew upgrade --cask $cask; done;

一个简单的FOR循环迭代所有的桶,而不是手动升级一个接一个。

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

买过时的酒桶:

酿酒桶过时了

升级桶:

酿造桶重新安装过时的桶

演示脚本:

$ cat ~/bin/brew_cask_upgrade.sh
#!/bin/bash
red=$(tput setaf 1)
# green=$(tput setaf 2)
reset=$(tput sgr0)

(set -x; brew update;)

for cask in $(brew cask outdated | awk '{print $1}')
do
    echo "${red}update ${cask} ...${reset}."
    (set -x; brew cask install --force "$cask";)
done

echo "${red}brew clean up ...${reset}"
(set -x; brew cask cleanup;)
echo "${red}brew clean up done.${reset}"