/etc をバージョン管理 - etckeeper
/etcと言えば、設定ファイルの宝庫だ。
etckeeperを使えば、この/etcをバージョン管理できるようになる。
「あの頃の設定に戻したい」「間違って設定ファイルを消してしまった……」なんて時に重宝する。
etckeeperの設定
etckeeperのインストール
$ sudo apt-get install git-core etckeeper
gitで管理するので、VCSをgitに変更しておく。
$ sudo vi /etc/etckeeper/etckeeper.conf
# The VCS to use. #VCS="hg" VCS="git" #VCS="bzr" #VCS="darcs"
リポジトリの作成
$ sudo etckeeper init Initialized empty Git repository in /etc/.git/
最初のコミット
$ sudo etckeeper commit "first commit"
以上で、設定は終了だ。
コミットは以下の条件で自動的に行われる。
- aptで変更が加わった時
- cron.dailyで毎日実行
ログの確認
$ sudo etckeeper vcs log
commit e149db25afe54e37e12a5ddc1581e948f53fba85 Author: esf <esf@localhost> Date: Fri Oct 19 00:51:19 2012 +0900 committing changes in /etc after apt run Package changes: +gimp 2.6.12-1ubuntu1.1 +gimp-data 2.6.12-1ubuntu1.1 +libbabl-0.0-0 0.0.22-1.1 +libgegl-0.0-0 0.0.22-2ubuntu3 +libgimp2.0 2.6.12-1ubuntu1.1 commit 6c2626dde7ca478f4c2c7c996a124d95b5899f80 Author: esf <esf@localhost> Date: Thu Oct 18 20:13:35 2012 +0900 committing changes in /etc after apt run Package changes: +exiftran 2.07-9 +exiv2 0.22-2 +geeqie 1:1.1-0~ppa5 +geeqie-common 1:1.1-0~ppa5 +ufraw-batch 0.18-1.1build1 commit f6f91f1f52770abfddb4dd8ba84256ddcbc12df2 Author: root <root@localhost.(none)> Date: Thu Oct 18 20:01:10 2012 +0900 daily autocommit
もしくはgitコマンで直接確認してもいい。
$ cd /etc $ sudo git log
なお、etckeeperコマンドでログを確認する際、$HOME/.gitconfigに書いたaliasの設定が使える。
例えば、$HOME/.gitconfigに以下の設定を書いていたとする。
[alias] log-graph = log --graph --date=short --pretty=format:'%Cgreen%h %cd %Cblue%cn %Creset%s'
etckeeperで以下を実行でき、ログの視認性が上がる。
$ sudo etckeeper vcs log-graph