⚙️

yadmでdotfilesを楽々管理

2024/12/29に公開

.zshrc.config/nvimsettings.jsonなどなど、
エディターやツールの設定ファイルをdotfilesとして管理している人は多いと思います。

それらの設定ファイルをGitで管理したり、シンボリックリンクを手動やスクリプトで張ったりやり方は人それぞれですが、
わたしなんかはなんだかんだでデバイス間同期や管理が面倒でなんやかんやで形骸化しちゃってました。

色々ツールを試してみたのですが、どれも自分にはしっくりこず。
そんな中ようやくドンピシャなツールを見つけることができました。
それが今回紹介するyadmです。

yadmとは

Yet Another Dotfiles Manager

を謳う設定ファイルの管理ツールです。

yadmの何が便利か

Gitとほぼ同等のコマンドで管理できる

  • yadm addでファイルを追加
  • yadm commitでコミット
  • yadm pushでプッシュ

など、Gitとほぼ同じコマンドで管理できます。
ツール固有のコマンドを覚える必要がないので、Gitを使ったことがある人ならすぐに使いこなせるでしょう。

シンボリックリンクが不要

yadmが管理するファイルは、実際のファイルがある場所に直接配置されます。
そのため、シンボリックリンクを張る必要がありません。

既存の設定ファイルをそのまま利用できる

既存の設定ファイルをコマンド一発でyadmの管理下におくことができます。
一度作った設定ファイルを作り直したりする必要もありません。

Gitとの連携が便利

yadm pushでリモートリポジトリに設定ファイルをプッシュできます。
リモートリポジトリをクローンするだけで、利用している端末で設定ファイルをすぐに使うことができます。
もちろんprivateリポジトリで運用することができますので、セキュリティも安心です。

ファイル名が変わらない

他の有名なツールとしてchezmoiも試してみたのですが、リポジトリ管理されるファイルの実態において、ファイル名が変わってしまうという点において違和感を感じてしまったので採用を見送った経緯があります。
好みの問題もあると思うので、気になった方は実際に両方試してみるのもいいかもしれません。

インストール

公式サイトにインストール方法が記載されています。
ここではmacOSの場合のインストール方法を紹介します。

brew install yadm

他のOSや管理ツールにもバッチリ対応しています。公式サイトを参考に環境に合わせたインストール方法を選択してください。

使い方

使い方も公式サイトに丁寧に記載されていますが、簡単に紹介します。

初期設定

yadm init

設定ファイルの追加

追加したい設定ファイルをyadm addで追加します。
addしないファイルはyadmで管理されないので、逐次的に導入していくこともできます。

yadm add .zshrc

コミット

yadm commit -m "Add .zshrc"

リモートリポジトリの設定

yadm remote add origin <url>

プッシュ

yadm push -u origin <local branch>:<remote branch>

別の端末で設定ファイルを使う

GitHubなどで管理していれば、別の端末からも設定ファイルを使うことができます。
その際は他のGitリポジトリと同じようにクローンして使います。

yadm clone <url>

これだけで他の端末でも同様の環境にて各種ツールを使うことができます。

まとめ

yadmには他にもBootstrapを使ってHomebrewなどのパッケージマネージャーの設定も管理できたり、
設定ファイルのテンプレートを使って新しい設定ファイルを作成することもできたりと、痒いところに手が届く機能を備えています。
ぜひ公式サイトを参考にして、ポータビリティの高い設定ファイル管理を実現してみてください。

Discussion