chezmoi on Ubuntu — dotfilesをGitHub管理して複数PCに即同期

開発環境

この記事のポイント

  • chezmoi は Ubuntu の apt リポジトリに含まれないため、公式インストールスクリプト(curl -fsLS get.chezmoi.io)で導入する(2026-06-13 実測)
  • インストールされるバージョンは v2.70.5(Ubuntu 22.04・24.04 ともに同じ最新版が入る)
  • dotfiles の実体は ~/.local/share/chezmoi/ に保存され、通常の git で管理できる
  • chezmoi init --apply <GitHubユーザー名> 1コマンドで別マシンにまるごと反映できる

複数台のPCやVPSを使っていると、~/.bashrc~/.vimrc の設定がどこかで食い違っていつも最初から設定し直す ── そんな経験はありませんか。

この記事では、dotfiles 管理ツール chezmoi を Ubuntu 24.04 LTS に導入し、GitHub と連携して複数マシンへ即座に同期する方法を実際にコンテナで動かしながら解説します。

手順は大きく4ステップ。インストール → dotfiles 登録 → GitHub push → 別マシンで反映、です。本記事では Ubuntu 24.04 LTS の Docker コンテナで実際に実行した結果(chezmoi v2.70.5)をそのまま載せています。

目次

  1. chezmoi とは
  2. 前提環境
  3. STEP 1:chezmoi をインストールする
  4. STEP 2:dotfiles を chezmoi に登録する
  5. STEP 3:GitHub に push する(SSH 鍵の設定)
  6. STEP 4:別マシンで一発反映する
  7. 日常的な操作まとめ
  8. よくあるエラーと解決策
  9. まとめ

chezmoi とは

chezmoi(チームオイ)は、dotfiles(.bashrc.vimrc などのホームディレクトリの設定ファイル)を Git で管理し、複数のマシン間で同期するためのツールです。

類似ツールとして GNU Stow や rcm がありますが、chezmoi は テンプレート機能(マシンごとに設定を変えたい部分を変数にできる)と暗号化機能を持っており、より複雑な構成にも対応できます。

仕組みはシンプルです。~/.local/share/chezmoi/(source-dir)という git リポジトリに dotfiles のコピーを保管し、chezmoi apply でホームディレクトリに展開します。この source-dir を GitHub に push しておけば、どのマシンでも同じ設定を再現できます。

前提環境

確認済み環境

本記事のコマンドは Ubuntu 24.04.4 LTS(Docker 公式イメージ ubuntu:24.04)で実行・確認しています。Ubuntu 22.04 LTS でも chezmoi v2.70.5 が同様にインストールできることを確認済みです。GitHub アカウントと SSH キーの設定が必要です。

STEP 1:chezmoi をインストールする

手順1:apt リポジトリには含まれないことを確認する

Ubuntu 24.04 の標準リポジトリには chezmoi が含まれていません。apt-cache policy chezmoi を実行しても何も返ってきません(2026-06-13 実測)。インストールには公式スクリプトを使います。




ubuntu@vps: ~
$ apt-cache policy chezmoi
(出力なし — apt リポジトリに chezmoi は含まれていない)

手順2:公式スクリプトでインストールする

curl が入っていない場合は先にインストールします。その後、chezmoi の公式インストールスクリプトを実行します。




ubuntu@vps: ~
$ sudo apt-get update && sudo apt-get install -y curl git
Setting up curl (8.5.0-2ubuntu10.9) …
Setting up git (1:2.43.0-1ubuntu7.3) …

$ sh -c “$(curl -fsLS get.chezmoi.io)” — -b /usr/local/bin
info found chezmoi version 2.70.5 for latest/linux/arm64
info installed /usr/local/bin/chezmoi

-b /usr/local/bin は「バイナリの置き場所」を指定するオプションです。省略すると ~/bin/ に置かれます。システム全体で使いたい場合は /usr/local/bin を指定しておきましょう。

手順3:インストールを確認する




ubuntu@vps: ~
$ chezmoi –version
chezmoi version v2.70.5, commit b81bd8daa23126bd5f1b2f787141b2b69439abee, built at 2026-06-03T21:59:37Z

$ which chezmoi
/usr/local/bin/chezmoi
chezmoi v2.70.5 インストール実行ログ(Ubuntu 24.04 LTS 実測)
chezmoi v2.70.5 インストール実行ログ(Ubuntu 24.04 LTS 実測)

Ubuntu 22.04 でも同じスクリプトで v2.70.5 が入ることを確認しています。どちらのバージョンを使っていても手順は同じです。

Ubuntu 22.04 / 24.04 でのバージョン比較(実測)
Ubuntu 22.04 / 24.04 でのバージョン比較(実測)

STEP 2:dotfiles を chezmoi に登録する

手順1:chezmoi を初期化する

最初に chezmoi init を実行します。これで ~/.local/share/chezmoi/ に git リポジトリが作られます。




ubuntu@vps: ~
$ chezmoi init

$ chezmoi source-path
/root/.local/share/chezmoi

ここではルートユーザーで実行しているので /root/ 配下になっていますが、一般ユーザーなら /home/ユーザー名/.local/share/chezmoi になります。

手順2:管理したい dotfile を追加する

chezmoi add <ファイルパス> で管理対象に追加します。ファイルはホームディレクトリの dotfile をそのまま指定します。




ubuntu@vps: ~
$ chezmoi add ~/.bashrc
$ chezmoi add ~/.vimrc

$ chezmoi managed
.bashrc
.vimrc

この時点で source-dir を覗いてみると、ファイル名が変わっていることに気づきます。




ubuntu@vps: ~
$ ls $(chezmoi source-path)/
dot_bashrc dot_vimrc

chezmoi は ドット始まりのファイルを dot_ プレフィックスに変換してリポジトリに保存します。こうすることで GitHub に push した際も、.bashrc のように隠しファイルになりません。chezmoi apply を実行すると逆変換されてホームディレクトリに戻されます。

手順3:source-dir 内の git でコミットする

chezmoi の source-dir は普通の git リポジトリです。chezmoi cd でそこに移動して、普通に git add / git commit します。




ubuntu@vps: ~/.local/share/chezmoi
$ chezmoi cd
$ git add .
$ git commit -m “Add dotfiles: .bashrc .vimrc”
[master (root-commit) e299234] Add dotfiles: .bashrc .vimrc
2 files changed, 104 insertions(+)
create mode 100644 dot_bashrc
create mode 100644 dot_vimrc
$ exit

$ chezmoi managed
.bashrc
.vimrc
chezmoi init / add / git commit の実出力(Ubuntu 24.04 実測)
chezmoi init / add / git commit の実出力(Ubuntu 24.04 実測)

STEP 3:GitHub に push する(SSH 鍵の設定)

手順1:GitHub リポジトリを作る

GitHub に dotfiles という名前のリポジトリを作ってください(プライベートリポジトリを推奨します。.bashrc にはパスやエイリアスなどの個人情報が入りがちです)。

手順2:SSH 鍵を生成する(未設定の場合)

GitHub への push に SSH を使う場合、鍵を生成して GitHub に登録します。Ubuntu 24.04 の openssh-client のバージョンは 9.6p1(2026-06-13 実測)で、ed25519 鍵に対応しています。




ubuntu@vps: ~
$ sudo apt-get install -y openssh-client
Setting up openssh-client (1:9.6p1-3ubuntu13.16) …

$ ssh-keygen -t ed25519 -C “you@example.com”
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [Enter]
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:HUs0ITEXnra8CEguZTcIjkjcNBhHt7uDzdsUho9RJDc you@example.com (ED25519)

$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID… you@example.com

表示された公開鍵(ssh-ed25519 から始まる1行)を GitHub の Settings → SSH and GPG keys → New SSH key に貼り付けます。

手順3:リモートを追加して push する




ubuntu@vps: ~/.local/share/chezmoi
$ chezmoi cd
$ git remote add origin git@github.com:あなたのユーザー名/dotfiles.git
$ git push -u origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Writing objects: 100% (4/4), 2.13 KiB | 2.13 MiB/s, done.
To git@github.com:あなたのユーザー名/dotfiles.git
* [new branch] main -> main

注意:main ブランチが使えない場合

chezmoi init 直後のブランチ名が master になっていることがあります(上記の実測でも master になりました)。git branch -M main でリネームするか、push コマンドを git push -u origin master に変えてください。

STEP 4:別マシンで一発反映する

別のUbuntuマシン(新しいVPS、職場のサブマシンなど)にも同じdotfilesを適用したい場合、chezmoi のインストール後にたった1コマンドで完了します。




new-ubuntu@newmachine: ~
# まず chezmoi をインストール
$ sh -c “$(curl -fsLS get.chezmoi.io)” — -b /usr/local/bin
info installed /usr/local/bin/chezmoi

# GitHub から取得して即反映(–apply)
$ chezmoi init –apply あなたのGitHubユーザー名
Cloning into ‘/root/.local/share/chezmoi’…
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
Receiving objects: 100% (4/4), done.

この1コマンドで GitHub の dotfiles リポジトリを ~/.local/share/chezmoi にクローンして、すぐに chezmoi apply まで実行してくれます。正直、ここが一番感動するポイントです。

chezmoi の init→add→git commit→新マシンで init --apply までのフロー(実測)
chezmoi の init→add→git commit→新マシンで init –apply までのフロー(実測)

日常的な操作まとめ

dotfiles を追加・変更するたびに使うコマンドをまとめます。

chezmoi よく使うコマンド一覧
chezmoi よく使うコマンド一覧

dotfiles を変更したときのフロー

たとえば ~/.bashrc に新しいエイリアスを追加したとき:




ubuntu@vps: ~
# .bashrc を直接編集してから chezmoi に反映
$ echo ‘alias gs=”git status”‘ >> ~/.bashrc
$ chezmoi re-add ~/.bashrc

# または chezmoi 経由で編集する(直接 source-dir が開く)
$ chezmoi edit ~/.bashrc

# 差分を確認
$ chezmoi diff

# source-dir でコミット → push
$ chezmoi cd && git add . && git commit -m “Add alias: gs” && git push

他マシンでの更新を取り込むフロー




ubuntu@subpc: ~
# git pull + apply を一括で
$ chezmoi update
Updating ‘/root/.local/share/chezmoi’
Already up to date.

よくあるエラーと解決策

① chezmoi: command not found

インストール先の /usr/local/bin~/bin$PATH に含まれていない場合に起きます。




ubuntu@vps: ~
$ echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin

# /usr/local/bin が PATH になければ追加する
$ echo ‘export PATH=”$PATH:/usr/local/bin”‘ >> ~/.bashrc
$ source ~/.bashrc
$ chezmoi –version
chezmoi version v2.70.5 …

② chezmoi apply で元ファイルが上書きされるのが怖い

実行前に必ず chezmoi diff で差分を確認しましょう。変更が入る箇所が色付きで表示されます。問題なければ chezmoi apply を実行します。

ドライランで事前確認

chezmoi apply --dry-run を使うと、実際には適用せずに何が変わるかだけ表示できます。本番のVPSなど、大事な環境に適用する前は必ずドライランを確認する習慣をつけましょう。

③ chezmoi init --apply で SSH 認証エラーになる

GitHub に SSH 鍵が登録されていないか、ssh-agent に鍵がロードされていない状態で起きます。SSH 接続テストを先に行いましょう。




ubuntu@vps: ~
$ ssh -T git@github.com
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

この表示が出ていれば SSH 認証は正常です。Permission denied (publickey) と出る場合は、GitHub に公開鍵が登録されているか確認してください。

④ ブランチ名が master と main で不一致

chezmoi 初期化直後は master ブランチが作られる場合があります(実測で確認)。GitHub がデフォルトで main を要求する場合は、ローカルでリネームしてから push します。




ubuntu@vps: ~/.local/share/chezmoi
$ chezmoi cd
$ git branch
* master
$ git branch -M main
$ git push -u origin main

まとめ

chezmoi を使った dotfiles 管理のポイントをまとめます。

  • chezmoi は apt リポジトリにないため、公式スクリプト sh -c "$(curl -fsLS get.chezmoi.io)" でインストールする(Ubuntu 22.04・24.04 どちらでも v2.70.5 が入る)
  • dotfiles の実体は ~/.local/share/chezmoi/dot_ プレフィックスで保存され、普通の git で管理できる
  • 新マシンへの展開は chezmoi init --apply <GitHubユーザー名> の1コマンドで完了する
  • 日常は chezmoi re-addgit commitgit push → 別マシンで chezmoi update というサイクルで回す
  • 適用前は必ず chezmoi diff または chezmoi apply --dry-run で確認する

自分だけの dotfiles リポジトリを育てていくと、新しいVPSやマシンをセットアップする時間が大幅に短縮されます。ぜひ試してみてください。

VPS上で chezmoi を活用してサーバー環境を整えたい場合は、コストパフォーマンスの良い Vultr の東京リージョンがおすすめです。月 $5 から始められます。

VPS選びに迷っている方は の比較記事も参考にしてください。

コメント

タイトルとURLをコピーしました