HRBrain Advent Calendar 2022、23日目の記事です。
はじめに
こんにちは。株式会社HRBrainでエンジニアリングマネージャーをしている山口です。
いろいろなウイスキーでハイボールを作って飲むYouTubeチャンネルを見ていたら、すっかりウイスキーに沼ってしまいました。是非コメントでオススメのウイスキーを教えてください。
本記事では、GNU Stowを使ったdotfiles管理について紹介します。
dotfilesって何?
dotfilesとは、ドット(.)から始まる設定ファイルのこと。ホームディレクトリでls -la
を実行すると表示されるアレです。
基本的には自動的に作成されるものが多いですが、.ssh/config
.zshrc
などは自分好みに編集しますよね。
マシン交換時に毎回設定するのも面倒なので、自分用リポジトリを持っている人も多いのではないでしょうか。
GNU Stowって何?
GNU Stowとは、シンボリックリンクファームマネージャーです。
システム上にあるソフトウェアやパッケージを、別のディレクトリにインストールされているように見せるシンボリックリンク、これを簡単に管理できます。
今回はこのStowを利用して、dotfilesを任意の場所に配置しようって魂胆です。
やってみよう
dotfilesを集める
まずは管理したいdotfilesを1つに集めます。パッケージ名などでディレクトリを分けておくと良いです。
dotfiles
├── code
│ ├── keybindings.json
│ └── settings.json
├── git
│ └── git
│ ├── config
│ └── ignore
├── ssh
│ └── config
├── tig
│ └── .tigrc
└── zsh
├── .zpreztorc
├── .zprofile
└── .zshrc
Visual Studio Code・Git・SSH・tig・zshの設定を置くとしたら、こんな感じでしょうか。
Stowを実行する
dotfilesをまとめることができたら、あとはもうStowを実行するだけです。
stow -R -v -d ./dotfiles -t ~ ssh tig zsh
stow -R -v -d ./dotfiles -t ~/.config git
stow -R -v -d ./dotfiles -t ~/Library/Application\ Support/Code/User code
-d
で指定したディレクトリ内にあるパッケージへのシンボリックリンクが、-t
で指定したディレクトリに作成されます。
良い感じ!
もうこれで、マシンを入れ替える度に、たくさんのdotfilesをcp
やln
でいちいち配置しなくてもいいですね!
実際に自分が使っているリポジトリを公開しているので、もし良かったら参考にしてください。
最後に
HRBrainでは引き続き仲間を募集しております。最新の募集状況などは下記からご確認ください。