Skip to main content
  1. Posts/

My Tooling - Part 3 - Installing my apps and packages

·3 mins
Photo by ilgmyzin on Unsplash

[Subtitle] For a software developer, just like chefs or artists, their setup/tools are an extension of their personal expression.

Its not just business, but very much personal !!!

•    •    •

Context #

Every developer is an artist, whose creations depend a lot on their tools and setup. It enables them to transform their ideas and manifest not just as functional, but a things of beauty.

Here, I will be sharing the my dev-setup tech tooling, that I love and keep tinkering with - I guess it will exist as a continuous work-in-progress.

Part 1 : My Tooling - Part 1 - Securing a new dev box

Part 2 : My Tooling - Part 2 - Setting up my dotfiles manager

Part 3 : My Tooling - Part 3 - Installing my apps and packages

•    •    •

Installing my apps and packages #

(As of now, I will be focusing on MacOS Device, but will update as I venture into using Linux/Windows as my dev machines)

To automate installing my apps and packages, I depend on Brew, Brew-Bundle, and Brewfile.

But, first, let’s a take step back and state the obvious, “What are Brew, BundleBundle and Brewfile?” and “Why should anyone care?”

The WHAT? #

Brew: Brew, also known as Homebrew, is a free and open-source software package management system that simplifies the installation of software on Apple’s macOS operating system and Linux.

  1. Brew-Bundle: Brew-Bundle is a part of Homebrew. It is used to orchestrate installing a list of packages and applications on your computer. It is aimed at having reproducible Homebrew setups.

  2. Brewfile: A Brewfile is a configuratuon file format to list packages and applications to be installed using Homebrew. Each line in the Brewfile represents an application or a package that can be installed through Homebrew. It separates brews, which are Homebrew packages, and casks, which are Mac apps installed through homebrew-cask.

The WHY? #

As developers do their experimentation and software development, most importantly testing, there is an inherent need to be able to setup/restore the system back to a known good state quickly and easily before starting/retrying. And of course the same applies to setting up a new dev machine.

Brew is amazing for Mac. And a version for Linux has been gaining popularity, but unlike MacOS, Linux comes in a plethora of distributions and underlying system variations, making it difficult. But something to consider and keep in mind.

•    •    •

The HOW? #

Here is a common usage workflow of Chezmoi

  1. Installation One can install Brew, Brew-Bundle manually, but I prefer to use Strap to do it all for me - see My Tooling - Part 1 - Securing a new dev box

  2. Using Chezmoi to automate running brewbundle

Firstly, populate your .ssh folder with the public and private SSH keys assigned to authenticate into github. Ensure the private key file has no file extension and has 600 pemissions and the public key has 644 permissions. Launch the ssh-agent and add the identity to ssh-agent (you will need to give passphrase)

    chmod 600 <ssh-pvt-key-file>
    chmod 644 <ssh-pub-key-file>
    eval "$(ssh-agent -s)"
    ssh-add --apple-use-keychain ~/.ssh/<ssh-private-key-file-name>

Then install chezmoi using homebrew by

    brew install chezmoi

And initialize chezmoi, which also triggers your run-once script, which should be authored to install the Brewfile.

    chezmoi init --verbose <ssh based URL for your chezmoi based dotfiles git repo>
    chezmoi apply --verbose

Then run

TODO: Update the content

Resources


────── 〔✿〕──────
──────────── 〔✿〕────────────