deploy: f52cbb0b6d995e0f708844297198f25ffda633b0

This commit is contained in:
davegallant
2021-09-09 05:08:11 +00:00
parent 9e2c97544a
commit 6e7d93f61c
2 changed files with 2 additions and 3 deletions

View File

@@ -135,8 +135,7 @@ tech blog
</div> </div>
</header> </header>
<div class="container entry-content"> <div class="container entry-content">
<p>Do you manage a <code>.zshrc</code>? <code>.vimrc</code>? <code>tmux.conf</code>? Do you have dozens of configuration files that you manage in a git repo? Or maybe you don&rsquo;t backup any of your configuration at all? Do you also have a bunch of command line utilities that you forget you installed? Or don&rsquo;t remember why you installed them?</p> <p>Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (<code>~/.zshrc</code>, <code>~/.config/git/config</code>, <code>~/.config/tmux/tmux.conf</code>, etc). I have tried several different ways to manage them, including <a href=https://www.atlassian.com/git/tutorials/dotfiles>bare git repos</a> and utilities such as <a href=https://www.gnu.org/software/stow/>GNU Stow</a>. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: <a href=https://github.com/nix-community/home-manager>home-manager</a>.</p>
<p>Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines. I have tried several different ways to manage them, including <a href=https://www.atlassian.com/git/tutorials/dotfiles>bare git repos</a> and utilities such as <a href=https://www.gnu.org/software/stow/>GNU Stow</a>. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: <a href=https://github.com/nix-community/home-manager>home-manager</a>.</p>
<h2 id=what-is-home-manager>What is home-manager?</h2> <h2 id=what-is-home-manager>What is home-manager?</h2>
<p>Before understanding home-manager, it is worth briefly discussing what nix is. <a href=https://nixos.org/>nix</a> is a package manager that originally spawned from a <a href=https://edolstra.github.io/pubs/phd-thesis.pdf>PhD thesis</a>. Unlike other package managers, it uses symbolic links to keep track of the currently installed packages, keeping around the old ones in case you may want to rollback.</p> <p>Before understanding home-manager, it is worth briefly discussing what nix is. <a href=https://nixos.org/>nix</a> is a package manager that originally spawned from a <a href=https://edolstra.github.io/pubs/phd-thesis.pdf>PhD thesis</a>. Unlike other package managers, it uses symbolic links to keep track of the currently installed packages, keeping around the old ones in case you may want to rollback.</p>
<p>For example, I have used nix to install the package <a href="https://search.nixos.org/packages?channel=unstable&show=bind&from=0&size=50&sort=relevance&type=packages&query=bind">bind</a> which includes <code>dig</code>. You can see that it is available on multiple platforms. The absolute path of <code>dig</code> can be found by running:</p> <p>For example, I have used nix to install the package <a href="https://search.nixos.org/packages?channel=unstable&show=bind&from=0&size=50&sort=relevance&type=packages&query=bind">bind</a> which includes <code>dig</code>. You can see that it is available on multiple platforms. The absolute path of <code>dig</code> can be found by running:</p>

File diff suppressed because one or more lines are too long