nix-rebuild について
nix-rebuildは、macOSでNix管理の設定変更を反映するためのスキルです。darwin-rebuildコマンドとheyのラッパーを使った再構築、テスト、世代のロールバック方法を説明します。
主な機能
- 01darwin-rebuildによる設定の再構築
- 02heyを使った再構築
- 03ブートエントリーなしでのビルドと有効化
- 04前のシステム世代へのロールバック
- 05更新後のNix storeシンボリックリンクの確認
活用シーン
- 01Nix設定ファイルの編集内容の反映
- 02Home Managerがリンクするファイル変更の有効化
- 03不要なシステム世代からの復旧
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ edmundmiller/ dotfiles --skill nix-rebuildインストール後、Claude Code で/nix-rebuildを入力して読み込まれたか確認します。
詳細
Nix システムの再ビルド
~/.config/dotfiles 内の Nix 管理対象の設定を変更した後は、変更を反映するためにシステムを再ビルドする必要があります。Nix ストアのシンボリックリンクは読み取り専用のため、その場で編集することはできません。
クイック再ビルド
cd ~/.config/dotfiles
sudo darwin-rebuild switch --flake .
darwin-rebuild には NOPASSWD の sudoers ルールが設定されているため、対話なしで実行できます。
hey の使用
hey コマンドで再ビルドを実行できます。
hey rebuild # or: hey re
hey test # build + activate without boot entry
hey rollback # roll back to previous generation
再ビルドが必要な場合
.nixファイルを編集した後- home-manager 経由でシンボリックリンクされている設定ファイル(lazygit、ghostty など)を編集した後
- Nix ストアのパスへの書き込み時に「permission denied」が表示された場合
ワークフロー
~/.config/dotfiles/内のソース設定を編集します- 変更をコミットします
sudo darwin-rebuild switch --flake ~/.config/dotfilesを実行します- シンボリックリンクが更新後の Nix ストアのパスを指していることを確認します
コメント
Markdown 対応