etckeeper

最近はubuntuもとんとご無沙汰なんですが、いつまでたっても本番運用できない自宅サーバ機で、etckeeperなるものを試してみました。

ubuntu 9.10で試してます。

インストール

 # aptitude show etckeeper
 パッケージ: etckeeper
 新規: yes
 状態: インストールされていません
 バージョン: 0.38ubuntu1
 優先度: 任意
 セクション: universe/admin
 メンテナ: Ubuntu Developers 
 展開サイズ: 381k
 依存: bzr (>= 1.4~) | git-core (>= 1:1.5.4) | mercurial | darcs, debconf (>= 0.5) | debconf-2.0
 推奨: cron
 競合: bzr (< 1.4~)
  :
  :

まだVCSと呼ばれるものは何もインストールしてない環境で、このままetckeeperをインストールすると、bzr(Bazaar)がインストールされちゃいそうなので、ひとまずgitをインストールしました(一緒にインストールすりゃいいんでしょうが)

# aptitude install git-core

この後、etckeeperをインストールしました。

# aptitude install etckeeper

設定

/etc/etckeeper/etckeeper.conf を編集しておく。
bzrを使う設定になっているので、bzrをコメントアウトして、gitを有効にする。

 VCS="git"
 # VCS="bzr"

その後、下記のようにしてリポジトリの初期化と最初のバージョンのコミットをする

 # etckeeper init
 Initialized empty Git repository in /etc/.git/
 # etckeeper commit

エディタが起動するのでコメントを書いて、コミット完了

使ってみる

ここで、update-alternatives --config editor コマンドにて、editor を nanoからvim.tinyに変更したので、/etc 配下に変更があった(はず)

 root:/etc# git status
 # On branch master
 # Changed but not updated:
 #   (use "git add ..." to update what will be committed)
 #   (use "git checkout -- ..." to discard changes in working directory)
 #
 #	modified:   alternatives/editor
 #	modified:   alternatives/editor.1.gz
 #
 # Untracked files:
 #   (use "git add ..." to include in what will be committed)
 #
 #	alternatives/editor.fr.1.gz
 #	alternatives/editor.it.1.gz
 #	alternatives/editor.pl.1.gz
 #	alternatives/editor.ru.1.gz
 no changes added to commit (use "git add" and/or "git commit -a")

上記のように直接gitコマンドで確認しても、変更があったことを確認できたので、etckeeperにてcommitしてみる。

# etckeeper commit

としたところ、下記のような画面でエディタが起動した。

 # Please enter the commit message for your changes. Lines starting
 # with '#' will be ignored, and an empty message aborts the commit.
 #
 # Author:    root 
 #
 # On branch master
 # Changes to be committed:
 #   (use "git reset HEAD ..." to unstage)
 #
 #       modified:   alternatives/editor
 #       modified:   alternatives/editor.1.gz
 #       new file:   alternatives/editor.fr.1.gz
 #       new file:   alternatives/editor.it.1.gz
 #       new file:   alternatives/editor.pl.1.gz
 #       new file:   alternatives/editor.ru.1.gz

コメントを追記してエディタを終了したところ、

[master 37da6ed] update-alternative --config editorを実行して デフォルトのエディタをvim.tinyに変更した
 6 files changed, 6 insertions(+), 2 deletions(-)
 create mode 120000 alternatives/editor.fr.1.gz
 create mode 120000 alternatives/editor.it.1.gz
 create mode 120000 alternatives/editor.pl.1.gz
 create mode 120000 alternatives/editor.ru.1.gz

ってな感じのメッセージが表示されて完了。
(上記の日本語がコメント)

 root:/etc# git log
 commit 37da6ed631c82b056013ed2d099d24d47877be70
 Author: root 
 Date:   Sun Jan 3 06:26:48 2010 +0900
 
     update-alternative --config editorを実行して
     デフォルトのエディタをvim.tinyに変更した
  :
  :

という感じで日本語のコミットメッセージも問題ないみたい(このあたりはgitによるものか...)

ここまでの疑問と雑感

  • etckeeperを使うと/etc配下のファイル更新管理が簡単にできるような気がしていたが、gitやbzrなどのVCSを直接使わないことには、更新されてるかどうかわからない
  • ということで、結局はgitをただ使っている気分になるのではなかろうか。

もう少し使ってみることにします....

2010-01-12 追記

# aptitude safe-upgrade

を実行したところ、所々でetckeeperが実行されているようなメッセージを目撃した。
つまり、aptでパッケージをインストールなんかすると、etckeeperは勝手に動く、ということなのか。

# cd /etc
# git log
commit 0cbfcbdb457f9b03cf994a49e7bbed5875fe2b4a
Author: root 
Date:   Tue Jan 12 23:50:17 2010 +0900

    committing changes in /etc after apt run
    
    Package changes:
    -libc-bin 2.10.1-0ubuntu15
    -libc6 2.10.1-0ubuntu15
    +libc-bin 2.10.1-0ubuntu16
    +libc6 2.10.1-0ubuntu16
    -libgssapi-krb5-2 1.7dfsg~beta3-1
    +libgssapi-krb5-2 1.7dfsg~beta3-1ubuntu0.1
    -libk5crypto3 1.7dfsg~beta3-1
    +libk5crypto3 1.7dfsg~beta3-1ubuntu0.1
  :
  :

これなら、パッケージの入れ替えやって/etc配下のファイルが書きかわっても、だいぶ管理が楽かも。