こんにちはこんにちは。昨日、さくら VPS に Git をインストールするエントリーを書きましたが、実はバージョン管理は etckeeper にもお世話になっています。
etckeeper というのは、Git 等のバージョン管理ツールを用いて、/etc 以下をほぼ自動的に管理してくれる有り難いツールです。下記のタイミングで自動的にコミットしてくれます。手動で任意のタイミングでコミットすることもできます。
-yum コマンド実行の前後 -日付が新しくなったとき <<
以下、さくら VPS(CentOS 5.5 -64bit)で etckeeper を使えるようになるまでの手順をまとめてみましたので、よろしければ参考にしてください。
*目次
- Git のインストール
- etckeeper のダウンロード
- etckeeper の設定ファイルの編集
- etckeeper のインストール
- etckeeper の使い方 <<
*1. Git のインストール
etckeeper を使うためには、Git 等のバージョン管理ツールがインストールされている必要があります。Git 以外も使えるのですが、やっぱ Git でしょ、ということで Git のインストールから。
インストールには ひと手間必要ですが、昨日エントリーを(がんばって)書きましたので、そちらを参照してください。
-Linux コマンド説明付きで、さくら VPS へ Git をインストールしてみた(CentOS 5.5 - 64bit) - 彼女からは、おいちゃんと呼ばれています
*2. etckeeper のダウンロード
git clone コマンドで etckeeper ソースをダウンロードできます。ダウンロードしたいディレクトリに移動してから、git clone を実行してください。
||
cd /usr/local/src
git clone git://git.kitenet.net/etckeeper
||<
|| (出力結果) Cloning into etckeeper... remote: Counting objects: 2507, done. remote: Compressing objects: 100% (1632/1632), done. remote: Total 2507 (delta 1594), reused 1258 (delta 793) Receiving objects: 100% (2507/2507), 440.79 KiB | 188 KiB/s, done. Resolving deltas: 100% (1594/1594), done. ||<
*3. etckeeper の設定ファイルの編集
etckeeper がダウンロードできたら、インストールする前に、設定ファイルを編集します。下記のとおり yum や rpm を使う設定にしてください。
||
vi /usr/local/src/etckeeper/etckeeper.conf
||<
|conf|
The VCS to use.
VCS="hg"
VCS="git" ## デフォルトで Git を使うようになっているはず
VCS="bzr"
VCS="darcs"
Options passed to git commit when run by etckeeper.
GIT_COMMIT_OPTIONS=""
Options passed to hg commit when run by etckeeper.
HG_COMMIT_OPTIONS=""
Options passed to bzr commit when run by etckeeper.
BZR_COMMIT_OPTIONS=""
Options passed to darcs record when run by etckeeper.
DARCS_COMMIT_OPTIONS="-a"
Uncomment to avoid etckeeper committing existing changes
to /etc automatically once per day.
AVOID_DAILY_AUTOCOMMITS=1
Uncomment to avoid etckeeper committing existing changes to
/etc before installation. It will cancel the installation,
so you can commit the changes by hand.
AVOID_COMMIT_BEFORE_INSTALL=1
The high-level package manager that's being used.
(apt, pacman-g2, yum etc)
HIGHLEVEL_PACKAGE_MANAGER=yum ## CentOS なので apt から yum へ変更
The low-level package manager that's being used.
(dpkg, rpm, pacman-g2, etc)
LOWLEVEL_PACKAGE_MANAGER=rpm ## CentOS なので dpkg から rpm へ変更 ||<
*4. etckeeper のインストール
まず、make コマンドでバイナリファイルを生成します。
||
cd /usr/local/src/etckeeper
make
||<
|| (出力結果) sed -i~ s/Version:./Version: $(perl -e '$_=<>;print m/*1/' rm -f etckeeper.spec~ ./etckeeper-bzr/init.py build || echo " bzr support not built" Traceback (most recent call last): File "./etckeeper-bzr/init.py", line 6, in ? from bzrlib.errors import BzrError ImportError: No module named bzrlib.errors bzr support not built ||<
上記のように bzrlib.errors というモジュールがない旨のエラーが発生するのですが、特に問題ないようです。
make install コマンドでインストールできるのですが、make -n install とすると、実際にはインストールせずに、インストールを実行したらどうなるかを事前に把握することができます。何かと便利です。
||
cd /usr/local/src/etckeeper
make -n install
||<
|| (出力結果) mkdir -p /etc/etckeeper/ /var/cache/etckeeper/ cp -dR *.d /etc/etckeeper/ install -m 0644 -D etckeeper.conf /etc/etckeeper/etckeeper.conf install -D etckeeper /usr/bin/etckeeper install -m 0644 -D etckeeper.8 /usr/share/man/man8/etckeeper.8 install -m 0644 -D bash_completion /etc/bash_completion.d/etckeeper install -m 0644 -D yum-etckeeper.py /usr/lib/yum-plugins/etckeeper.py install -m 0644 -D yum-etckeeper.conf /etc/yum/pluginconf.d/etckeeper.conf ./etckeeper-bzr/init.py install --root= || echo " bzr support not installed" echo " installation successful" ||<
etckeeper-bzr がインポートされませんが、etckeeper 自体のインストールは成功するようですので、make install コマンドで実際にインストールします。
||
cd /usr/local/src/etckeeper
make install
||<
|| (出力結果) mkdir -p /etc/etckeeper/ /var/cache/etckeeper/ cp -dR *.d /etc/etckeeper/ install -m 0644 -D etckeeper.conf /etc/etckeeper/etckeeper.conf install -D etckeeper /usr/bin/etckeeper install -m 0644 -D etckeeper.8 /usr/share/man/man8/etckeeper.8 install -m 0644 -D bash_completion /etc/bash_completion.d/etckeeper install -m 0644 -D yum-etckeeper.py /usr/lib/yum-plugins/etckeeper.py install -m 0644 -D yum-etckeeper.conf /etc/yum/pluginconf.d/etckeeper.conf ./etckeeper-bzr/init.py install --root= || echo " bzr support not installed" Traceback (most recent call last): File "./etckeeper-bzr/init.py", line 6, in ? from bzrlib.errors import BzrError ImportError: No module named bzrlib.errors bzr support not installed echo " installation successful" installation successful ||<
*5. etckeeper の使い方
||
etckeeper init
||< で /etc に Git リポジトリが作成され etckeeper の監視が開始されます。
|| (出力結果) Initialized empty Git repository in /etc/.git/ ||<
最初のコミットもしておきましょう。
||
etckeeper commit "initial commit"
||<
ちなみに
||
etckeeper commit -m "initial commit"
||<
ではないので気をつけてください。Git と異なり -m は不要です。
最初のコミットが終わったら、前述のとおり、下記のタイミングで自動的にコミットされます。
-yum コマンド実行の前後 -日付が新たになったとき
もしくは、任意のタイミングでコミットしたり。
||
etckeeper commit -m "(message)"
||<
/etc でフツーに Git のコマンドも使用可能です。
||
cd /etc
git commit -m "(message)"
||<
ログを確認したいときは Git コマンドで OK
||
cd /etc
git log
||<
その他、etckeeper に独自コマンドを追加したりもできますが、詳細は後述の参考サイトを参照してください。
ではでは。
*おまけ - Git の参考書籍(入門書)
昨日も書きましたが、Git コマンドに慣れるには下記 2冊がオススメです。

- 作者: Travis Swicegood,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2009/08/12
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 305回
- この商品を含むブログ (101件) を見る

- 作者: 濱野純(Junio C Hamano)
- 出版社/メーカー: 秀和システム
- 発売日: 2009/09/24
- メディア: 単行本
- 購入: 31人 クリック: 736回
- この商品を含むブログ (155件) を見る
ちなみに濱野純さんって Git のメンテナだったんですね。小飼弾さんの「アルファギークに逢いたい」 を読んで、恥ずかしながら昨日知りました。現役のおじさんはカッコいいです♪
*参考サイト
-CentOS に etckeeper をインストール - miauの避難所
-http://blog.udzura.jp/2010/11/22/tutorial-of-etckeeper/
-Linux コマンド説明付きで、さくら VPS へ Git をインストールしてみた(CentOS 5.5 - 64bit) - 彼女からは、おいちゃんと呼ばれています
*1:.?