Ruby で書かれたタイル型 WM を入れてみた

Web ブラウジングしていると、何やら Ruby で作られたタイル型 Window Manager があると聞き、早速公式ページに飛んでみました。その WM の名前は subtle というらしいです。

subtle

概要
A grid-based manual window manager

サブプロジェクト: sublets, subtle-contrib, subtlext-dbus

以下必要環境とインストール方法の引用です。mercurial にて公開されてるので clone したら subtle/INSTALL に書いてあります。因みに RVM をインストールするなら Multi-User 推奨です。でないと面倒くさいです。

 line source
     1 Install
     2 -------
     3 
     4 Dependencies
     5 ============
     6 
     7 subtle has the following dependencies:
     8 
     9  1. Ruby[1] (>=1.9)
    10  2. Rake[2] (>=0.8)
    11  3. X11[3] (>=6.8.2)
    12 
    13 And folowing optional gems for sur:
    14 
    15  1. curb[4] (>=0.5.1.0) (sur only)
    16  2. archive-tar-minitar[5] (>=0.5.2)
    17  3. datamapper[6] (>=0.9.11) (surserver only)
    18  4. sinatra[7] (>=0.9.4) (surserver only)
    19 
    20 Versions
    21 ========
    22 
    23 Stable releases can be found here[8]. If you like you can clone the Mercurial[9]
    24 repository and install the developer version as followed:
    25 
    26  1. hg clone http://hg.subforge.org/subtle
    27  2. cd subtle
    28  3. rake [options]
    29  4. rake install

Ruby && Rake は RVM && Gem で調達するのでいいとして、X11 は apt で入れないとダメですね。

$ sudo aptitude install xorg

次に gem パッケージですが、curb がクセモノでした。他は gem ですんなり入るのですが、curb だけは全く入らず、延々エラーを吐いていました。途方にくれつつ、差異を調べるために実機で試したところ簡単に入ってしまいました。既に rvm notes で build 関係を調べて入れてあったのでその線は無いかと思い、gem 周りが原因だろうと安易に考え実機の Ruby ライブラリを調査してみました。

$ dpkg -l | grep lib | grep ruby | awk '{print $2}' | sed 's/$/\s\\/g'

ついでにコピーアンドペーストしやすいように名前の抜き出しとバックスラッシュを行末に付けました。以下結果。

libdifflcs-ruby1.9.1 \
libfeedparser-ruby1.8 \
libmysql-ruby \
libmysql-ruby1.8 \
librmail-ruby1.8 \
librspec-ruby1.9.1 \
libruby \
libruby1.8 \
libruby1.9.1 \
libruby1.9.1-dbg \
libsqlite3-ruby \
libsqlite3-ruby1.8 \
libtcltk-ruby \
libtcltk-ruby1.8 \
libtcltk-ruby1.9.1 \
libwirble-ruby1.9.1 \
rubygems \
rubygems1.8 \

意外と大量に出てきたので一つ一つは調べずに、全部インストールしました。反省はしてます。この後 gem install curb を行なったらすんなりインストール出来たので、これを入れとけば問題なしっぽいです。残りのパッケージも入れてしまいましょう。

$ gem install archive-tar-minitar datamapper sinatra

こちらはすんなり入るはずです。因みに最新版を取っておけば動作範囲無いのバージョンになるので何も考えなくて OK でした。subtle のソースを取ってくるには mercurial というバージョン管理が必要らしいので入れることに。

$ sudo install mercurial

ソースを mercurial で clone します。

$ hg clone http://hg.subforge.org/subtle
$ cd substle
$ rake [option]

[option] には適宜必要な物を付けてください。[option] に help を付けるとデフォルトの PATH が見れます。私の環境では実行したところエラーが返ってきました。

$ rake bindir=/usr/bin
$ sudo rake install

これで rake は通りました。後は試しに実行してみるだけです。

$ xinit /usr/bin/subtle

これで動きました。これを入れるのだけで非常に時間がかかったのが悔しいです。というか、全部 curb を入れるのに手間取っただけですが... web には curb のインストールに必要なライブラリの話なんて殆ど無く、あってもそれでは僕の問題が解決しなかったのが最大の問題だったんですよね。実機にインストール出来てほんとよかった。危うく web をさまよう亡霊になる所でした。