macOS setup¶
A setup guide for programmers, etc., on Windows.
Initial setup¶
First, upgrade macOS by running
Enable FileVault, and remove unneeded Login Items.
Reminder
Remember to save your encryption key!
Install Homebrew and update it: brew update && brew upgrade
. Install a few extra Linux utils and the text editor Sublime:
And a couple of small things:
- Show hidden files:
- Show filename extensions: Do this in Finder ➤ Settings ➤ Advanced.
- In Finder, add your home folder to the SideBar: File ➤ add to sidebar.
- Finder ➤ settings ➤ Advanced ➤ Show all filenames.
Configure your shell¶
Follow: Shell setup .
brew-refill
alias¶
Run this to add a brew-refill
command:
From that, you can run brew-refill
to update Brew and its packages, and to fix problems.
Note
Although Homebrew only recommends running brew doctor
if there’s a problem, chances are you’ll eventually need to run it, so it’s not a bad idea to deal with those issues immediately rather than to accumulate a daunting stack of issues to fix simultaneously later.
Git, SSH, and GPG¶
Install a version of OpenSSL (actually LibreSSL) that will receive updates: brew install libressl
. The OpenSSL version in macOS by default was seriously out-of-date when Heartbleed was made public, and took a long time to get patched.
Also install GPG and the GitHub CLI:
Next, follow: Shell setup .
Java, Rust, and Python¶
For Rust, just install the Rust toolchain.
For Java, download JDK 21 LTS from Temurin (or a newer non-LTS version if preferred). Do not use Java 8, java.com, or OpenJDK. Make sure it’s on your $PATH
by checking the version via java --version
in a new shell.
For Python, install and use uv. You don’t need anything else – and you really shouldn’t use anything else. Make your life easier: (1) Leave your system Python alone, (2) don’t install Python via a package manager, and (3) install and use Conda/Mamba only if necessary.
Generate a certificate¶
If you need a certificate, set a static IP address and generate a certificate with certbot. Choose “None of the above” for Software. Then follow the instructions exactly, including the “Automating renewal” section. This may not work through some company and university firewalls.
_[LTS]: Long-Term Support _[JDK]: Java Development Kit
Thanks
Thank you to Cole Helsell for drafting this guide with me.