SlideShare a Scribd company logo
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 it’s available here:
https://github.com/jonfuller/laptop/
thoughtbot
The cool guys over at thoughtbot (https://thoughtbot.com/) have done this before too.
I was inspired by their work here: https://github.com/thoughtbot/laptop
$ /usr/bin/ruby -e 
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
If you’re 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 developer’s best friend. It uses the “system ruby” to install itself.
$ brew tap caskroom/cask
Homebrew Cask (https://caskroom.github.io/) is a plugin on top of Homebrew. It’s for
installing things that are DMG’s and pkg’s.
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 doesn’t 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 to date.
$ mas install `mas search "XCode" | head -1 | cut -d ' ' -f 1`
On macos, setting up a dev environment, starts with XCode.
That gets you GCC tools, clang, everything you’ll 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 ruby developers.
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 you’re using a database in development, you’ll 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, this’ll 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 didn’t 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 “jon@sep.com”
Don’t 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 :heart: p4merge).
no dice
We use AnyConnect for VPN stuffs. The nature of Cisco AnyConnect is that they
don’t distribute it freely; so, I didn’t find a great way to automate the installation of it.
macos installation automation
github.com/jonfuller/laptop
I’m constantly updating this with new things I install. Follow along here:
https://github.com/jonfuller/laptop/

More Related Content

PDF
Docker slides
PDF
SEP DevOps Ignite Talk - Packer
PDF
Using Docker with Puppet - PuppetConf 2014
PDF
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
PDF
Drupal VM for Drupal 8 Dev - MidCamp 2017
PDF
Provisioning & Deploying with Docker
PDF
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
PPTX
Django via Docker
Docker slides
SEP DevOps Ignite Talk - Packer
Using Docker with Puppet - PuppetConf 2014
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Drupal VM for Drupal 8 Dev - MidCamp 2017
Provisioning & Deploying with Docker
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Django via Docker

What's hot (20)

PPTX
Automating Dev Environment - Introduction to Docker and Chef
PPTX
Installaling Puppet Master and Agent
PPTX
Baking docker using chef
PPTX
Austin - Container Days - Docker 101
PDF
Automating Docker Containers with Puppet 2014 10-13
PPTX
Package Management on Windows with Chocolatey
PDF
Packer by HashiCorp
PDF
How to Improve Your Image Builds Using Advance Docker Build
PDF
Docker Started
PDF
Automated Deployment with Capistrano
PDF
Vagrant + Docker provider [+Puppet]
PDF
Baking Docker Using Chef
PDF
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
PDF
SF DevOps: Introducing Vagrant
PDF
Deploy django apps using docker
PPTX
Delivering eBay's CI Solution with Apache Mesos & Docker - DockerCon 2014
PDF
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
PDF
Ansible Introduction
PPTX
Docker presentation
PDF
Dockerfile
Automating Dev Environment - Introduction to Docker and Chef
Installaling Puppet Master and Agent
Baking docker using chef
Austin - Container Days - Docker 101
Automating Docker Containers with Puppet 2014 10-13
Package Management on Windows with Chocolatey
Packer by HashiCorp
How to Improve Your Image Builds Using Advance Docker Build
Docker Started
Automated Deployment with Capistrano
Vagrant + Docker provider [+Puppet]
Baking Docker Using Chef
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
SF DevOps: Introducing Vagrant
Deploy django apps using docker
Delivering eBay's CI Solution with Apache Mesos & Docker - DockerCon 2014
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Ansible Introduction
Docker presentation
Dockerfile
Ad

Viewers also liked (16)

PDF
Round tripping your assumptions
PDF
Puppet - Simple Configuration Management
PPTX
Vietnam literature
PDF
PPT
Working with Images
DOCX
Hoja de vida deissy mora
PPT
Working with Video and Audio
PDF
Cse space-mouse-report
PPTX
dealing with dependencies, taking your architecture to rehab
PDF
Ignite Talk on Chef
PPTX
Gomez juan
PDF
Resisting/Unresisting
DOCX
Estrategias centro acosta final(2)
PDF
Servicio Comunitario Proyecto final
PPTX
SaltStack Configuration Management
Round tripping your assumptions
Puppet - Simple Configuration Management
Vietnam literature
Working with Images
Hoja de vida deissy mora
Working with Video and Audio
Cse space-mouse-report
dealing with dependencies, taking your architecture to rehab
Ignite Talk on Chef
Gomez juan
Resisting/Unresisting
Estrategias centro acosta final(2)
Servicio Comunitario Proyecto final
SaltStack Configuration Management
Ad

Similar to macos installation automation (20)

ODP
Capifony. Minsk PHP MeetUp #11
PDF
Dependencies Managers in C/C++. Using stdcpp 2014
PDF
Vagrant - Version control your dev environment
PDF
Deploying Symfony | symfony.cat
PDF
IOS 11 setup with appium latest
KEY
Composer
PDF
Instruction: dev environment
PDF
Making environment for_infrastructure_as_code
PDF
Capistrano deploy Magento project in an efficient way
PPTX
Hadoop installation on windows
PDF
Sun raysetup
PDF
Continuous Delivery: The Next Frontier
PPTX
Hadoop on osx
PDF
May The Nodejs Be With You
PDF
DevOps(4) : Ansible(2) - (MOSG)
PPTX
Toolbox of a Ruby Team
PPTX
How to go the extra mile on monitoring
PDF
FreeBSD: Dev to Prod
PDF
grate techniques
PDF
MeaNstack on Docker
Capifony. Minsk PHP MeetUp #11
Dependencies Managers in C/C++. Using stdcpp 2014
Vagrant - Version control your dev environment
Deploying Symfony | symfony.cat
IOS 11 setup with appium latest
Composer
Instruction: dev environment
Making environment for_infrastructure_as_code
Capistrano deploy Magento project in an efficient way
Hadoop installation on windows
Sun raysetup
Continuous Delivery: The Next Frontier
Hadoop on osx
May The Nodejs Be With You
DevOps(4) : Ansible(2) - (MOSG)
Toolbox of a Ruby Team
How to go the extra mile on monitoring
FreeBSD: Dev to Prod
grate techniques
MeaNstack on Docker

Recently uploaded (20)

PPTX
Geodesy 1.pptx...............................................
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Welding lecture in detail for understanding
PPTX
Sustainable Sites - Green Building Construction
PDF
composite construction of structures.pdf
PPTX
OOP with Java - Java Introduction (Basics)
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
DOCX
573137875-Attendance-Management-System-original
PDF
Digital Logic Computer Design lecture notes
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
UNIT 4 Total Quality Management .pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Well-logging-methods_new................
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Geodesy 1.pptx...............................................
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Lecture Notes Electrical Wiring System Components
CH1 Production IntroductoryConcepts.pptx
Welding lecture in detail for understanding
Sustainable Sites - Green Building Construction
composite construction of structures.pdf
OOP with Java - Java Introduction (Basics)
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
573137875-Attendance-Management-System-original
Digital Logic Computer Design lecture notes
UNIT-1 - COAL BASED THERMAL POWER PLANTS
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
UNIT 4 Total Quality Management .pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Foundation to blockchain - A guide to Blockchain Tech
bas. eng. economics group 4 presentation 1.pptx
Well-logging-methods_new................
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...

macos installation automation

  • 1. 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.
  • 2. 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 it’s available here: https://github.com/jonfuller/laptop/
  • 3. thoughtbot The cool guys over at thoughtbot (https://thoughtbot.com/) have done this before too. I was inspired by their work here: https://github.com/thoughtbot/laptop
  • 4. $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" If you’re 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 developer’s best friend. It uses the “system ruby” to install itself.
  • 5. $ brew tap caskroom/cask Homebrew Cask (https://caskroom.github.io/) is a plugin on top of Homebrew. It’s for installing things that are DMG’s and pkg’s. Install things like slack and chrome.
  • 6. $ brew cask install google-chrome $ brew cask install slack $ brew cask install microsoft-office Installing chrome, slack and office with homebrew cask.
  • 7. $ brew cask install p4merge $ brew cask install sourcetree $ brew cask install macvim $ brew cask install virtualbox Installing developer tools with homebrew cask.
  • 8. $ 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 doesn’t ship with wget?
  • 9. $ 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 to date.
  • 10. $ mas install `mas search "XCode" | head -1 | cut -d ' ' -f 1` On macos, setting up a dev environment, starts with XCode. That gets you GCC tools, clang, everything you’ll need for node, ruby, xamarin, ios, etc.
  • 11. $ 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 ruby developers. Bootstrap your ruby install like this.
  • 12. $ 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 you’re using a database in development, you’ll probably want to try out Postgres. Install postgres, some nice tooling, and configure bundler to point at your postgres install.
  • 13. $ brew install heroku-toolbelt $ heroku update $ heroku login I love deploying apps to heroku, this’ll get you ready to go with heroku on your new machine.
  • 14. $ 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 didn’t work quite correctly. This will download and launch the latest Xamarin installer.
  • 15. $ 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.
  • 16. $ git config --global user.name “Jon Fuller” $ git config --global user.email “jon@sep.com” Don’t forget to configure git.
  • 17. $ git config --global merge.tool p4mergetool $ git config --global mergetool.p4mergetool.cmd <...> Then connect p4merge to git. (BeyondCompare is cool tool, but :heart: p4merge).
  • 18. no dice We use AnyConnect for VPN stuffs. The nature of Cisco AnyConnect is that they don’t distribute it freely; so, I didn’t find a great way to automate the installation of it.
  • 20. github.com/jonfuller/laptop I’m constantly updating this with new things I install. Follow along here: https://github.com/jonfuller/laptop/