Terminal commands to update everything

Posted on:

Updated on:

This post is for those of you who want to have their tools always at the last, cutting edge version. I tried to put together all the tools that I use daily for my job and for my university studies. Hope this benefits not only me.

Quick note: for some update commands I prepend a command to inspect the current state of the tool. This is useful especially for package managers.

Windows specific

Update wsl:

wsl --update

There is no easy way to update the PowerShell modules installed via Install-Module, but this script does the job perfectly (also removing the packages’ old versions).

Update PowerShell help modules:

Update-Help [-UICulture en-US]

Update package managers’ installed packages:

winget upgrade
winget upgrade --all
choco outdated -l
choco upgrade all
scoop status
scoop update --all
scoop checkup
scoop cleanup --all


Rust tools:

rustup update

Rust installed binaries are not updated by running the previous command. They need to be explicitly updated. For instance, to update cargo-watch:

cargo install --list
cargo install cargo-watch


deno upgrade


Updating pip and all python packages in the current venv

The first command seems to not work anymore due to the --outdated and the --format=freeze flags used together. The second command updates only pip.

# python3 -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 python3 -m pip install --upgrade
python -m pip install --upgrade pip