第12章 / Book
第12章 № 12 · 2026

第12章 設定の理解と管理

dotfiles と apt を Git で追跡する

設定ファイルがテキストである意味

Debianでは、OS・アプリの設定の大半がテキストファイルで管理されている。これはWindowsやmacOSとの決定的な違いだ。

レジストリでも、不透明なバイナリでもない。テキストなので:

この章では、自分の環境をGitで追跡可能なドキュメントにする作法を身につける。

第一節 設定ファイルの場所

三つの階層

1. システム全体の設定/etc/ 配下 /etc/ssh/sshd_config/etc/apt/sources.list/etc/fstab など。編集には sudo が要る。

2. ユーザー固有の設定~/.config/~/.〇〇 配下 ~/.config/fcitx5/~/.config/Code/~/.bashrc~/.gitconfig。ホームディレクトリにある。

3. アプリ固有の設定:様々な場所 ~/.mozilla/firefox/ のようにアプリごとに固有。

よく触る設定ファイル(例)

~/.bashrc                       # bash の設定
~/.profile                      # ログインシェルの設定
~/.gitconfig                    # git のユーザー情報
~/.ssh/config                   # SSH 接続の定義
~/.config/fcitx5/               # 日本語入力
~/.config/zed/settings.json     # Zed エディタの設定
~/.config/nvim/                 # Neovim の設定(init.lua / lazy-lock.json)
~/.config/JetBrains/PyCharmCE2026.1/  # PyCharm Community の設定
~/.config/autostart/            # 自動起動アプリ

第二節 dotfiles を Git で管理する

dotfiles リポジトリを作る

ホームディレクトリ直下の「ドット始まり」ファイルを総称して dotfiles と呼ぶ。これをGit管理する。

# dotfilesディレクトリを作る
mkdir ~/dotfiles
cd ~/dotfiles
git init

# 個人用のGitHub/GitLab等にリポジトリを作り、プッシュ

シンボリックリンク方式

元のファイルを dotfiles/ に移して、シンボリックリンクを張る。

# 例:.bashrc を管理下へ
mv ~/.bashrc ~/dotfiles/bashrc
ln -s ~/dotfiles/bashrc ~/.bashrc

# 例:.gitconfig を管理下へ
mv ~/.gitconfig ~/dotfiles/gitconfig
ln -s ~/dotfiles/gitconfig ~/.gitconfig

機密情報を分離する

APIキー、アクセストークン、パスワードは dotfiles に含めない。

Claudeに聞いてみよう①:dotfilesの設計

私は自分の Debian 環境を dotfiles として Git 管理したいです。現在、〔bashrc, gitconfig, ssh/config, fcitx5 設定, Zed/Neovim 設定〕を管理対象にしたいです。

(1) 推奨のディレクトリ構造 (2) シンボリックリンクを自動で張る install スクリプト (3) 機密情報の分離方法 (4) 新しいPCでクローンして復元する手順

を教えてください。スクリプトは POSIX sh で。

返ってきた構造をベースに、自分で調整する。

第三節 aptパッケージ一覧を再現可能にする

現在入っているパッケージを記録

# 手動で入れたパッケージの一覧
apt list --manual-installed > ~/dotfiles/apt-manual.txt

# または dpkg で全パッケージ
dpkg --get-selections > ~/dotfiles/packages.txt

別PCで同じ構成を再現

# packages.txtから復元
sudo dpkg --set-selections < packages.txt
sudo apt-get dselect-upgrade

日常的に足したパッケージを追記する習慣

アプリを一つ入れるたびに、apt-manual.txt を更新して Git にコミット。面倒なら月一回まとめてやる。

# 月次更新スクリプトの雛形
apt list --manual-installed > ~/dotfiles/apt-manual.txt
cd ~/dotfiles
git add apt-manual.txt
git commit -m "apt: $(date +%Y-%m) $(wc -l < apt-manual.txt) packages"

Claudeに聞いてみよう②:再現スクリプト

私のdotfiles/配下に apt-manual.txt があり、そこに入れたパッケージ名が並んでいます。新しいDebian 13に、このリストを元に全パッケージを入れるシェルスクリプトを書いてください。エラー処理(パッケージが存在しない場合の継続、権限確認、ミラー到達確認)を含めて、POSIX shで。

第四節 /etc の変更を追跡する

etckeeper で自動追跡

sudo apt install etckeeper

etckeeper/etc/ 配下をGitリポジトリとして自動管理する。apt でパッケージを入れると、その時点の /etc/ 全体がコミットされる。手動編集もコミットできる。

# /etc/ssh/sshd_config を編集したあと
sudo etckeeper commit "sshd: PermitRootLogin no に変更"

これで、システム設定の全変更履歴が残る。「いつ、何を変えたか」が全部分かる。

第五節 ホームディレクトリのバックアップ

dotfiles は設定だけ。写真、書類、プロジェクトなどのデータは別途バックアップが必要。

rsyncで外付けSSDへ

# 外付けSSDに /mnt/backup としてマウント
rsync -av --delete --exclude='.cache' --exclude='node_modules' \
  ~/ /mnt/backup/home-$(hostname)/

Timeshift でシステムスナップショット

sudo apt install timeshift

Timeshift はシステム領域のスナップショットを取る。/home/ は通常対象外。アップデートで何か壊れたときの復旧に使える。

ホームのバックアップは rsync または Syncthing、システムのスナップショットは Timeshift、という二重構成が実用的。

Claudeに聞いてみよう③:バックアップ戦略

私の Debian PC の構成:

  • 主データ場所:~/Documents, ~/Pictures, ~/Projects
  • 保存先候補:外付けSSD 2TB、NAS、クラウド(〇〇)

次の要件を満たすバックアップ戦略を立ててください:

  • 日次の自動バックアップ
  • 週次の完全コピー
  • 月次のオフサイト保管
  • 1ファイル誤削除からの復旧
  • OS全損からの復旧

必要なツール、cron設定、手順を具体的に。

第六節 再インストールのシミュレーション

一度やってみる

この章の仕上げとして、もう一台のPCまたは仮想マシンで、dotfilesからの復元を試す

# 新しいDebianに初回ログイン後
cd ~
git clone https://github.com/あなた/dotfiles.git
cd dotfiles
./install.sh          # リンクを張る
./apt-restore.sh      # パッケージを入れる
./post-install.sh     # DE設定、fcitx5、等

この一連が成功してこそ、あなたの環境はドキュメント化されたと言える。やってみて詰まった箇所を修正する。

成功の定義

第七節 Claudeを設定管理の相棒にする

変更をClaudeに要約させる

定期的に、dotfiles の変更履歴を Claude に要約させる。

次のgit logを要約してください:

〔git log --oneline -n 30 の出力〕

私の Debian 環境が過去一ヶ月でどう変化したか、傾向を教えてください。

意識していなかった変化の方向性が見える。

エラー時に全環境を渡す

何かトラブったとき、dotfiles 一式とシステム情報を Claude に渡す。

私の環境は次の通りです:

  • my-system.md 〔貼る〕
  • ~/.bashrc 〔貼る〕
  • ~/.config/fcitx5/ の主要ファイル 〔貼る〕

次の症状について、原因を特定してください:〔症状〕

情報量が多いほど、Claudeの判断は具体的になる。

まとめ

この章でやったこと:

  1. 設定ファイルの三階層(system / user / app)を把握した
  2. dotfilesをGit管理に乗せ、シンボリックリンクで運用を始めた
  3. aptパッケージ一覧を apt-manual.txt として記録・復元可能にした
  4. /etc/ の変更を etckeeper で自動追跡するようにした
  5. rsync と Timeshift でバックアップ戦略を組んだ
  6. dotfilesからの復元を実際に試した(または計画した)

手元に残ったもの:

ここで第3部が終わる。あなたのDebian環境は「作って使うだけ」から「再現可能な設計図」に進化した。これは Windows では構造的に難しかったことだ。

次の第4部(第13〜16章)では、開発環境の構築に入る。ターミナル、エディタ、Git、言語環境、そして Claude Code——これらを Debian 上で組み合わせて、ビルダーとしての一歩を踏み出す。


シリーズ全体はClaudeと一緒に学ぶDebian 一覧から辿れる。コメント・議論は Facebook グループへ:AISeed — 生物多様性・食料・AIと暮らし