This blog post is gonna be a walk-through of setting up my new laptop, which led to this PR from my dotfiles repo. There were a few things I needed to update to get the laptop running. The biggest one was upgrading from Homebrew 1.x to Homebrew 2.0
Overall I was really happy with how painless the migration to a new machine was, thanks in large part to Homebrew and my dotfiles
repo. With these two I was able to install everything I needed and have most of my configuration already working without any additional work.
I didn't record the exact commands I ran but it was something like this
What this does is checkout my dotfiles
repo in the home dir. This isn't how some people do their dotfiles, where they store the version controlled files somewhere else and copy or symlink then into their homedir. Instead I keep my actual home directory under version control, but have the .gitignore
set up as a white-list, where I have to specifically add files to be tracked. This works really well for me since I don't have to maintain two different directories. I wrote a bit more about that setup here.
My first brew bundle
didn't work, since there were some upgrades I needed to make! The rest of this post will be about the changes I had to make to get up and running! Overall I felt like I only had to make a few small changes and I was up and running really quickly!
In February of this year, the Homebrew community released Homebrew 2.0 🎉 🎉
First I want to say thanks to the whole Homebrew community for all the work they do! Getting out 2.0 is an awesome milestone!
There were a few changes in Brew 2 that affected my dotfiles, and setup.
The first was the removal of options for all formulae in Homebrew/homebrew-core
. This is the default tap and as such many a few options I was using were no longer supported. There were a few options I was using that I simply removed, and I don't think I was actively using them. This included the --with-webp
option for imagemagick
and --with-iri
for wget
.
However there was one class of options that I did still want to support! And that is the --with-default-names
option that I was using on a few GNU utils, including coreutils
, grep
and sed
. This option made it so I could use the Homebrew installed versions of these utilities without using them with their g
prefix. So for example I wanted to be able to use sed
not gsed
to use the GNU sed
tool.
However it is relatively painless to accomplish this! I did it by adding the follow code snippets to my .bash_profile
. These came directly from the CAVEATS
section of each of the Brew installs
# Add GnuCoreUtils to the Path
# Add grep to the Path
# Add sed to the Path
This actually does one more thing besides just add these utilities to the PATH. It also sets the MANPATH
so that you can do man sed
and get the correct documentation for the GNU sed
tool
I also made a few additional changes to my Brewfile not related to the upgrade.
I removed a few things that had trouble installing and I didn't use anymore including svg-term
and heroku
.
I also removed gpg-agent
since it is bundled with gpg
now.
I added go
and rustup
since my setup depends on some go and Rust utilites. I've had these on my machine previously but missed adding them to my dotfiles. I also realized that some of the GUI tools I wanted could be installed via cask
so I added a few of those as well
.ruby-version
fileI was actually surprised I hadn't already done this when I setup the new laptop. But I wasn't keeping the .ruby-version
file in my homedir under git
, so I changed that by adding the latest currently available version of ruby as my default .ruby-version
. I will still have projects that depend on different versions of Ruby, and have their own .ruby-version
file. But this will give me a good default version, that is consistent between machines.
My weekly newsletter tailored at developers who are eager to grow with me!
Every week will be unique, but expect topics focusing around Web Development and Rust