Every year I do a clean install of the latest macOS, to mostly get rid of the things I accumulated throughout the year that I no longer use and force myself to do some house keeping. Whether after a clean install or just getting my hands on a new Mac, I find myself doing the same setup process every time - I mostly rely on a python 2 setup. In this post, I document this workflow for my future self and hopefully for the benefit of others.
Back in the day, backing up all my data just before a clean install was a painful process but thanks to iCloud, which now takes care of backing up my bookmarks, passwords, etc, it is now a straightforward step.
All I have to do is copy my files in
~/[username] to an external hard drive.
P.S. I do this in addition to the Time Machine backup just in case!
Prepare a bootable macOS installer, erase the main drive, and install the OS. A nice guide for this can be found here.
First, we’ll install Xcode and the Command Line Tools from the App Store. Don’t forget to accept the license agreement after installation before moving on.
Settings & Software
Second, while Xcode is installing, copy your files back and change the trackpad, keyboard, users, etc. settings to your liking. I also have a bunch of dot files that contain paths, aliases, etc. to make things easier. I keep these files in this Github repository, some of these files might be useful.
Also, install your favorite text editor, TeX / iWork / Office, and other software you regularly rely on; as well as, themes and colors.
The remainder of the workflow will be run from the terminal.
Some Standard Packages
A version control system - Git (or preferred alternative):
We’ll need to add the new python to the path:
The world’s best text editor :) - Vim:
Pathogen makes it easy to install vim plugins:
Some minimal sensible vim settings:
It’s almost always useful to have Node installed:
This website is built with jekyll and like Node, it’s useful to a have Ruby and RVM installed:
A C compiler - GCC; this is also a dependency for later packages:
Virtualenv is a tool to create isolated environments that is very handy in managing multiple python projects that require different dependencies:
(While you’re at it, do consider donating :) to the open-source community.)
We’ll have to visit PyTorch’s website to install the latest PyTorch; or the current preferred tool.
That’s All Folks! I find this to be a minimal setup to get up and running. Other tools can be installed later when needed and probably within the project scope.