この記事はSchoo Advent Calendar 2025の14日目の記事です!
こんにちは、株式会社Schoo(以下、スクー)のタキザワです。
普段はエンジニアリングマネージャー(EM)としてエンジニア組織の組織開発や、
エンジニアの成果創出を最大化するための成長支援を行っています。
昨年のSchoo Advent Calendarでは、EMらしく若手エンジニアこそリーダーにチャレンジしてみませんか?という内容で寄稿させていただいたのですが、
今年はまた別の一面を、ということで、筆者の好きなLinuxを題材に、感じた課題をどのように解決しているのかお話をしたいと思います。
(前提)筆者にとってのLinuxとは
筆者は、学生のころから、個人開発の開発環境やサーバー運用ではLinuxを使っており、今でもとても好きで親しみを感じているオペレーティングシステム(OS)です。
特に面白いと感じている部分で、WindowsやMacにはない固有の概念として、ディストリビューションがあります。
ディストリビューションとは?
WindowsやMacでは、OSとしての機能(ハードウェア制御やプロセス管理、インターフェースの提供など)の他に、大多数のユーザーが必要と感じるであろう、様々なソフトウェアが組み込まれています。
例えば、インターネットブラウジングをしたければ、EdgeやSafariなどのアプリが使えますし、ちょっとメモをしたければ、メモ帳やテキストエディットなどのアプリを起動すれば良いです。
一方、Linux(特に狭義のLinuxであるLinuxカーネル)には、OSとしての機能しかなく、そのままでは、ユーザーがパソコンを使って行いたいことはほとんど何もできません。
そこで、Linuxカーネルに加え、そうした大多数のユーザーが必要と感じるであろうソフトウェアもパッケージングして、ユーザーに使いやすいものとして配布しているものがディストリビューションとなります。
日々、多様なディストリビューションが誕生しており、トレンドの移り変わりもあるため、トレンドサイト(DistroWatch)を見ながら追いかけるのが、昔からの筆者のルーティーンの一つとなっています。
ここ数ヶ月のトレンドだと、Arch Linux系統のCachyOSの人気が高まっているようです。
また、Windows10のサポート終了につき、有力な移行先であるWindows11はハードウェア要件が高いことから、代替プランとして、Windowsと使用感の似ているZorin OSにも注目が集まっているようです。
最近感じた課題
常に新しいものは出てきますし、面白そうなものを見つけてしまったが最後、ちょっと試してみたくなってしまうのがエンジニアの性です。なので、頻繁に適当なパソコンにセットアップしては使ってみています。
様々なディストリビューションを試していると、じわじわと面倒になってくるのが、よく使うソフトウェアのインストールや設定の再現です。
(例えば、Notoといった日本語表示のためのフォントやFcitx5といった多言語入力メソッドなど)
試せば試すほど、インストールした後にやっていることがいつも同じで非効率的だという思いが強まってきたので、これを効率化する方法を調べてみました。
情報収集して方針を考える
Linuxに関する情報収集で外せないのがArchWikiの存在です。
Arch Linuxの使用を前提として記載されているものの、汎用的な情報も多く、知識は他のLinuxディストリビューションにも応用できることが多いです。
それっぽいキーワードで検索してみたところ、下記のページが気になりました。
詳細は省きますが、ページ内の記載を見たところ、 dotfiles をバックアップ&コピーすれば、新しくLinuxをセットアップしたパソコンでも容易に設定を再現できるようです。
また、いくつか関連するツールも提示されており、これらを使うことでさらなる効率化もできそうです。
関連するツールについて調べる
いろいろなツールがありそうなので、Gemini先生に整理してもらいます。(こういった情報整理はAIエージェントの得意分野ですね。)
下記の前提で、dotfilesを管理できるツールを3つ、GitHubへのリンク付きで提示してください。
結果はGitHub Starsの降順でソートしてください。
また、それぞれのツールの強みも教えてください。
- GitHubでソースコードが公開されている
- 6ヶ月以内にリリースされている
Gemini先生からの回答
🚀 6ヶ月以内に更新された!人気のDotfiles管理ツール 3選
Dotfiles(設定ファイル)の管理は、開発環境のセットアップや異なるマシン間での同期に不可欠です。本記事では、GitHubで活発に開発されており、過去6ヶ月以内にリリース実績がある(つまりメンテナンスが継続されている)人気の高いツールを3つご紹介します。
📊 比較一覧(GitHub Stars降順)
| 順位 | ツール名 | GitHub Stars | GitHub リンク | 強み / 特徴 |
|---|---|---|---|---|
| 1 | chezmoi | 16,954 | twpayne/chezmoi | クロスプラットフォーム、秘密データ暗号化、テンプレート機能 |
| 2 | Dotbot | 7,699 | anishathalye/dotbot | 軽量・シンプル、設定ファイルベースの自動化、高い拡張性 |
| 3 | vcsh | 2,233 | RichiH/vcsh | シンボリックリンク不要、複数Gitリポジトリの並行管理、高度なフック |
🛠️ 各ツールの詳細と強み
1. chezmoi (Stars: 16,954)
chezmoiは、現代的なdotfiles管理ツールとして非常に人気があります。
強み
- 🌐 クロスプラットフォーム対応:macOS、Linux、Windowsなど、複数のOS間でシームレスに設定を管理できます。
- 🔒 秘密データの安全な管理:AgeやGnuPGなどのツールと連携し、機密性の高い設定やパスワードを暗号化して管理できます。
- ⚙️ テンプレート機能:Goのテンプレート構文を使用し、ホスト名やOSに応じたマシン固有の設定を柔軟に生成できます。
- 最小限の依存関係:単一のバイナリファイルとして動作するため、Git以外の特別な依存関係がほとんど不要です。
2. Dotbot (Stars: 7,699)
Dotbotは、Pythonで書かれた、シンプルさと自動化に特化した軽量ツールです。
強み
- ✨ 軽量で導入が簡単:Python製で、非常に軽量かつ依存関係が少ないため、環境構築の初期段階でも容易に利用できます。
-
📑 設定ファイルベースの自動化:
install.conf.yamlというシンプルな設定ファイル一つで、シンボリックリンクの作成、サブモジュールの初期化、カスタムコマンドの実行などを定義し、ブートストラップを完全に自動化できます。 - 高い拡張性:必要に応じてカスタムモジュールを組み込むことができ、複雑なセットアッププロセスにも柔軟に対応できます。
3. vcsh (Stars: 2,233)
vcshは、Gitを最大限に活用し、設定ファイルを複数の独立したリポジトリに分割して管理することに特化したツールです。
強み
- 🔗 シンボリックリンク不要:従来のGitベースの管理方法で必要だったシンボリックリンクの設定を不要にします。
-
🔄 複数リポジトリの並行管理:
$HOMEディレクトリ内で、設定ファイルの種類ごと(例:vim、zsh、gitなど)に複数の独立したGitリポジトリを共存させることができます。 - 環境分離:システム固有の設定を扱う際に、別のブランチや代替設定を柔軟に適用でき、環境の分離が容易です。
- フックシステム:Gitのフックを利用するよりも高度なフックシステムを備えており、カスタマイズ性が高いです。
調べられた範囲ではchezmoi(読みはシェモア)というツールがナンバーワンで、先述のArch Wikiのドットファイルのページでも紹介されていたものです。
強みにある「最小限の依存関係である」も、個人的に良いと感じたポイントなので、早速使ってみました。
初めてその分野のツールを使ってみる場合、まずは素直にナンバーワンを使ってみることをおすすめします。というのも、困ったときに参照できる情報の量が圧倒的に多いことと、No.2やNo.3はNo.1で満たされないニーズに応えるコンセプトで作られていることが往々にしてあるためです。
使ってみて
既に使っている方もおり、使用方法の参考にさせていただきました。
最終的には、下記の流れに落ち着きました。
更新する
-
chezmoi updateを実行する -
chezmoi git add .を実行する -
chezmoi git commit -- -m "<commit message>"を実行する -
chezmoi git pushを実行する
新しいPCに再現する
- Linuxをセットアップする
- .sshディレクトリにSSH鍵ペアを配置し、パーミッションを設定する
-
chezmoi init git@github.com:my-account/dotfiles.gitを実行する
また、このツールで特に有用に感じた機能は下記の通りです。
これがやりたいな、と思ったことは大抵簡単にできるようになっており、「さすが、痒いところが分かってる!」と感動を覚えました。
おわりに
筆者の好きなLinuxを題材に、課題に対して、普段どのようにアプローチしているのかをご紹介しました。
今回取り上げたchezmoiについても、ツールの使い方を紹介している記事は数あれど、それを使うに至るまでのプロセスを紹介したページはあまり見かけなかったので、執筆してみました。
誰かの問題解決の参考になれば幸いです。
Schooでは一緒に働く仲間を募集しています!
