Augeasはとっても微妙だと思いました

OTPの記事を読んで興味を持ったのでとりあえずインストールして試してみました。Augeasは設定ファイルをなんかうまい事編集し易くしてくれるツールです。ただ実際試してみたものの、なんだか微妙だなぁ、という印象です。あんまり期待しない方がいいんじゃないのかなー、とだけ最初に断わっておきます。もしかして将来的にはとっても便利になっているのかも知れないけど、どれだけ頑張れるのかなぁ?

インストール方法

まずもってAugeasはRedHat製なんです。だからUbuntuな私は素直にソースを落としてきてビルドすることにしました。現在のところ最新版は 0.2.0 なんですけれど、これを make したところなんか失敗しました。レポジトリを見てみたらそこは既に修正済みのようなので、今現在直接ビルドしようと思っている人はレポジトリから最新版を取得した方が良いと思います。

Augeas — Contribute

で、ビルド方法はいつもの通りです。

% ./autogen.sh
% ./configure
% make
% sudo paco -lD make install

みたいな感じ。Augeasのレポジトリは mercurial なんですけど、autogen すると git でなんか取ってきたりして、魑魅魍魎感が漂うところですが、まぁ気にしないでおいた方がいいと思います。

使い方

チュートリアルの始めの方をちょこっとやってみます。

Augeas — Quick Tour

% export AUGEAS_ROOT=/tmp/augeas-sandbox # 環境変数 AUGEAS_ROOT がターゲットになります
% mkdir $AUGEAS_ROOT
% sudo cp -pr /etc $AUGEAS_ROOT # 安全を考慮して複製をいじることに
% sudo chown -R $USER $AUGEAS_ROOT

augtool -b # これでaugeasのシェルが起動します
augtool> set /files/etc/hosts/10000/ipaddr 192.168.0.1
augtool> set /files/etc/hosts/10000/canonical pigiron.example.com
augtool> set /files/etc/hosts/10000/alias[1] pigiron
augtool> set /files/etc/hosts/10000/alias[2] piggy
augtool> save
augtool> ls /files/etc/hosts/10000
ipaddr = 192.168.0.1
canonical = pigiron.example.com
alias[1] = pigiron
alias[2] = piggy

みたいな。本当はとっても複雑な条件で探したり書いたり出来ちゃってウハウハらしいです。でもOTPの記事でも指摘されているように、hostsファイルに空行があると変更が保存されないよ!この辺はlensとかいう設定ファイルの読み込み指定如何らしいので、そのうち改善が期待できると思います。

感想

でも結局のところ便利かどうかは疑わしいと思います。まずRedHat製なのでUbuntuとかの環境でも使う人がいるのかがあやしい。広く普及しない場合こういうツールは結構使いづらいのではないでしょうか。あとはlensの出来がどうなるかですが、これについては時間が解決してくれると思うのでは心配いらないだろうと思います。

なお、良い点はRubyOCamlバインディングが用意されていることです。

というかシェル内だけじゃなくて、FUSEとかで全部ファイルとしてマウントしちゃってくれたら便利なのに、と思いました。そういう方向で進化しないかなぁ。