A simple-to-use CLI utility to properly update your macOS installation all at once.
Once you want to do a full update of your macOS installation, there occurs various struggles:
- GUI hassles: Some updates can be accomplished by their respective GUIs, however, it's cumbersome; especially the Mac App Store which still doesn't reflect the changes properly,
- Complex Commands: Even though some commands are easy to type, others can be more elaborate,
- Keeping track of caches: These commands fill up their caches that needs to be cleaned regularly which is another thing for you to keep track of,
- Time lost: If you're manually entering these commands, you're going to have to wait in between them; losing time.
With all these hassles, it could be that someone might not update their system too often; not because they can't but they don't want to deal with it. Or it could be that they're forgetting something; e.g. cache cleanups.
Hence, this script was created. So that people can properly update their macOS installation.
It goes through major things that can be on a macOS installation and updates them properly/throughly.
This script asks for your sudo
password!
Full disclosure:
- the script itself doesn't require sudo itself but the Python and Ruby stuff makes use of it,
- the script doesn't messes around with your sudo password; feel free to check the source code.
- Homebrew
- App Store apps
- macOS
- Python 2
- PIP 2 packages
- Ruby
- RVM
Python 3 and PIP 3 are updated by Homebrew if you've installed them from Homebrew which is mostly the case.
- Homebrew
mas
: required for updating the Mac App Store apps from the CLI. If you don't have it:brew install mas
update [OPTIONS] [ENV]
- -h, --help: See a synopsis.
- -o, --output: Output the logs to a given file.
- -v, --verbose: While updating, be verbose & output what's being generated by each and every command. The default is that merely the main command entrances and exits will be displayed.
- macos
- mas
- homebrew
- ruby
- rvm
- python2
- pip
- system(all of the above combined)
Updating everything:
update system
Update everything, be verbose, and log to the given location:
update -o ~/Desktop/update.log -v system
Just update Ruby
& PIP
:
update ruby pip
Be verbose and show what's going on while updating:
update -v
- Allow carry on without providing sudo and hence ask it later,
- Implement logging,
- Implement verbose operation,
- Implement the usage cases of the command line argument.
- Updating the Python packages is throwing an error,
- Updating the Ruby gems is still problematic even if sudo is granted,