Ich möchte, dass ein einziger Befehl alles auf meiner Mac-Befehlszeile aktualisiert. Kein komplizierter Befehl mehr brew update && brew upgrade && brew cleanup && brew doctor
, npm update -g
um alles in pip3 zu aktualisieren. Gibt es dafür ein vorhandenes Tool oder sollte ich nur ein Skript verwenden? Außerdem ist das überhaupt eine gute Idee? Hat es Vorteile, meine gesamte Software einzeln zu aktualisieren?
Als Referenz ist dies die aktuelle Funktion, die ich in meinem .zshrc
habe und die alles aktualisieren soll:
function update () {
(brew update && brew upgrade && brew cleanup && brew doctor) &
upgrade_oh_my_zsh &
npm update -g &
(pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U) &
(cd ~/.vim_runtime && git pull --rebase)
}
Nachdem ich diese Frage an vielen Stellen gestellt habe, habe ich die Funktion so verfeinert, dass sie umfassender und vorhersehbarer ist (führt die Updates seriell statt parallel aus).
Dies ist das Endergebnis in meinem .zshrc
(Aktualisiert Sept. 2021):
function update () {
softwareupdate --install --all
(brew update && brew upgrade && brew cleanup && brew doctor)
mas upgrade # https://github.com/mas-cli/mas
npm update -g
(pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U)
(gem update --system && gem update && gem cleanup) # https://github.com/rbenv/rbenv
omz update # https://ohmyz.sh/
(cd ~/.vim_runtime && git pull --rebase) # https://github.com/amix/vimrc
}
sfxedit