読者です 読者をやめる 読者になる 読者になる

DIMENSION 2.00

/ Nexus / Mac / Ubuntu / カメラ / beatmania / 猫 / 株 / 情報蒐集 /

/etc をバージョン管理 - etckeeper

Ubuntu

/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"


以上で、設定は終了だ。

コミットは以下の条件で自動的に行われる。

  1. aptで変更が加わった時
  2. 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