i got a new laptop
Recently, I got a new laptop. This time, instead of going and
installing all the software I needed willy nilly, I decided to
document how I went about setting it up.
I documented it with BASH
I decided to document my set up as an executable.
I scripted the whole thing in a shell script, and its available
The cool guys over at thoughtbot (https://thoughtbot.com/) have
done this before too. I was inspired by their work here:
$ /usr/bin/ruby -e \"$(curl -fsSL
If youre a macos user, homebrew is a must.
Coined as The missing package manager for macOS
(https://brew.sh/, also https://github.com/Homebrew/brew/)
A developers best friend. It uses the system ruby to install
$ brew tap caskroom/cask
Homebrew Cask (https://caskroom.github.io/) is a plugin on top
of Homebrew. Its for installing things that are DMGs and pkgs.
Install things like slack and chrome.
$ brew cask install google-chrome$ brew cask install slack$ brew
cask install microsoft-office
Installing chrome, slack and office with homebrew cask.
$ brew cask install p4merge$ brew cask install sourcetree$ brew
cask install macvim$ brew cask install virtualbox
Installing developer tools with homebrew cask.
$ brew install git$ brew install openssl$ brew install wget #
WAT!?$ brew install redis$ brew install node
Installing developer tools with homebrew.
Sidenote: what kind of OS doesnt ship with wget?
$ brew install mas$ mas install `mas search "Kindle" | head -1 |
cut -d ' ' -f 1`
mas (stands for Mac App Store) is a command line interface for
interacting with the Mac App Store.
This is a great way to keep system apps and updates as well as
other 3rd party apps (e.g. Twitter, Kindle, etc.) installed and up
$ mas install `mas search "XCode" | head -1 | cut -d ' ' -f
On macos, setting up a dev environment, starts with XCode.That
gets you GCC tools, clang, everything youll need for node, ruby,
xamarin, ios, etc.
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys \
409B6B1796C275462A1703113804BB82D39DC0E3$ \curl -sSL
https://get.rvm.io | bash -s stable$ source ~/.rvm/scripts/rvm$ rvm
install 2.4$ rvm install 2.3$ rvm all do gem update --system$ rvm
all do gem install bundler
ruby is a must for most web developers; and rvm is a must for
Bootstrap your ruby install like this.
$ brew cask install postgres$ mas install `mas search "PG
Commander" | head -1 | cut -d ' ' -f 1`$ bundle config build.pg
--with-pg-config=/Applications//bin/pg_config$ echo "export
PATH=$PATH:/Applications//latest/bin" >> ~/.zshrc
If youre using a database in development, youll probably want to
try out Postgres.
Install postgres, some nice tooling, and configure bundler to
point at your postgres install.
$ brew install heroku-toolbelt
$ heroku update
$ heroku login
I love deploying apps to heroku, thisll get you ready to go with
heroku on your new machine.
$ wget https://dl.xamarin.com/installer/XamarinInstaller.dmg$
hdiutil attach -noautoopen XamarinInstaller.dmg$ open
/Volumes/Xamarin\ Installer/Install\ Xamarin.app
I make mobile apps in my day job with Xamarin.
There is a cask for this, but it didnt work quite correctly.
This will download and launch the latest Xamarin installer.
$ softwareupdate -ir --verbvose
Macos is no stranger to OS updates. Thankfully softwareupdate is
here to help us invoke these from the command line as well.
$ git config --global user.name Jon Fuller
$ git config --global user.email [email protected]
Dont forget to configure git.
$ git config --global merge.tool p4mergetool
$ git config --global mergetool.p4mergetool.cmd
Then connect p4merge to git. (BeyondCompare is cool tool, but
We use AnyConnect for VPN stuffs. The nature of Cisco AnyConnect
is that they dont distribute it freely; so, I didnt find a great
way to automate the installation of it.
Im constantly updating this with new things I install. Follow
along here: https://github.com/jonfuller/laptop/